Implement dependency wrapping & version spec

This commit is contained in:
2024-11-10 03:30:55 +11:00
parent 941dfae317
commit 5e4cf1bbc9
8 changed files with 248 additions and 11 deletions

View File

@ -0,0 +1,22 @@
// SPDX-License-Identifier: Apache-2.0
import Foundation
struct ApkIndexDependency: ApkIndexRequirementRef {
let name: String
let versionSpec: ApkVersionSpecification
init(extract: String) throws(ApkRequirement.ParseError) {
(self.name, self.versionSpec) = try ApkRequirement.extract(blob: extract)
}
}
extension ApkIndexDependency: CustomStringConvertible {
var description: String {
switch self.versionSpec {
case .any: self.name
case .conflict: "!\(self.name)"
case .constraint(let op, let version): "\(self.name)\(op)\(version)"
}
}
}