1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
//===----------------------------------------------------------------------===//
//
// This source file is part of the Swift open source project
//
// Copyright (c) 2020-2021 Apple Inc. and the Swift project authors
// Licensed under Apache License v2.0 with Runtime Library Exception
//
// See http://swift.org/LICENSE.txt for license information
// See http://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
//
//===----------------------------------------------------------------------===//
import _Concurrency
import PackageModel
import Basics
public protocol PackageCollectionsStorage {
/// Writes `PackageCollection` to storage.
///
/// - Parameters:
/// - collection: The `PackageCollection`
func put(collection: PackageCollectionsModel.Collection) async throws -> PackageCollectionsModel.Collection
/// Removes `PackageCollection` from storage.
///
/// - Parameters:
/// - identifier: The identifier of the `PackageCollection`
func remove(identifier: PackageCollectionsModel.CollectionIdentifier) async throws
/// Returns `PackageCollection` for the given identifier.
///
/// - Parameters:
/// - identifier: The identifier of the `PackageCollection`
func get(identifier: PackageCollectionsModel.CollectionIdentifier) async throws -> PackageCollectionsModel.Collection
/// Returns `PackageCollection`s for the given identifiers, or all if none specified.
///
/// - Parameters:
/// - identifiers: Optional. The identifiers of the `PackageCollection`
func list(identifiers: [PackageCollectionsModel.CollectionIdentifier]?) async throws -> [PackageCollectionsModel.Collection]
/// Returns `PackageSearchResult` for the given search criteria.
///
/// - Parameters:
/// - identifiers: Optional. The identifiers of the `PackageCollection`s
/// - query: The search query expression
func searchPackages(
identifiers: [PackageCollectionsModel.CollectionIdentifier]?,
query: String
) async throws -> PackageCollectionsModel.PackageSearchResult
/// Returns packages for the given package identity.
///
/// Since a package identity can be associated with more than one repository URL, the result may contain multiple items.
///
/// - Parameters:
/// - identifier: The package identifier
/// - collectionIdentifiers: Optional. The identifiers of the `PackageCollection`s
func findPackage(
identifier: PackageIdentity,
collectionIdentifiers: [PackageCollectionsModel.CollectionIdentifier]?
) async throws -> (packages: [PackageCollectionsModel.Package], collections: [PackageCollectionsModel.CollectionIdentifier])
/// Returns `TargetSearchResult` for the given search criteria.
///
/// - Parameters:
/// - identifiers: Optional. The identifiers of the `PackageCollection`
/// - query: The search query expression
/// - type: The search type
func searchTargets(
identifiers: [PackageCollectionsModel.CollectionIdentifier]?,
query: String,
type: PackageCollectionsModel.TargetSearchType
) async throws -> PackageCollectionsModel.TargetSearchResult
}
|