Add requirement-based resolution to index

This commit is contained in:
2025-07-06 18:32:15 +10:00
parent 58d8e648b9
commit 710f0970c5
4 changed files with 73 additions and 2 deletions

View File

@ -7,6 +7,7 @@ import Foundation
public struct ApkIndex: Sendable {
public let packages: [ApkIndexPackage]
public typealias Index = Array<ApkIndexPackage>.Index
}
public extension ApkIndex {
@ -21,6 +22,18 @@ public extension ApkIndex {
$0.name == name
}
}
func resolve(requirement: ApkVersionRequirement) -> ApkIndexPackage? {
self.packages.first {
$0.name == requirement.name && requirement.versionSpec.satisfied(by: $0.version)
}
}
func resolveIndex(requirement: ApkVersionRequirement) -> Index? {
self.packages.firstIndex {
$0.name == requirement.name && requirement.versionSpec.satisfied(by: $0.version)
}
}
}
public extension ApkIndex {