mirror of
https://github.com/GayPizzaSpecifications/darwin-apk.git
synced 2025-08-03 05:30:54 +00:00
Consolidate version stuff
This commit is contained in:
@ -6,9 +6,9 @@
|
||||
import Foundation
|
||||
|
||||
public struct ApkIndexDependency: Hashable, Sendable {
|
||||
let requirement: ApkRequirement
|
||||
let requirement: ApkVersionRequirement
|
||||
|
||||
init(requirement: ApkRequirement) {
|
||||
init(requirement: ApkVersionRequirement) {
|
||||
self.requirement = requirement
|
||||
}
|
||||
}
|
||||
|
@ -4,9 +4,9 @@
|
||||
*/
|
||||
|
||||
public struct ApkIndexInstallIf: Hashable, Sendable {
|
||||
let requirement: ApkRequirement
|
||||
let requirement: ApkVersionRequirement
|
||||
|
||||
init(requirement: ApkRequirement) {
|
||||
init(requirement: ApkVersionRequirement) {
|
||||
self.requirement = requirement
|
||||
}
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
public struct ApkIndexProvides: Hashable, Sendable {
|
||||
let name: String
|
||||
|
||||
init(requirement: ApkRequirement) {
|
||||
init(requirement: ApkVersionRequirement) {
|
||||
self.name = requirement.name
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,7 @@ struct ApkIndexRequirementRef {
|
||||
self._graph!.pkgIndex.packages[self.packageID]
|
||||
}
|
||||
|
||||
func satisfied(by other: ApkRequirement) -> Bool {
|
||||
func satisfied(by other: ApkVersionRequirement) -> Bool {
|
||||
true
|
||||
}
|
||||
}
|
||||
@ -50,11 +50,11 @@ extension ApkIndexRequirementRef: CustomStringConvertible {
|
||||
}
|
||||
return switch self.constraint {
|
||||
case .dep(let version):
|
||||
"dep=\(ApkRequirement(name: package.name, spec: version))"
|
||||
"dep=\(ApkVersionRequirement(name: package.name, spec: version))"
|
||||
case .provision:
|
||||
"provides=\(package.name)"
|
||||
case .installIf(let version):
|
||||
"installIf=\(ApkRequirement(name: package.name, spec: version))"
|
||||
"installIf=\(ApkVersionRequirement(name: package.name, spec: version))"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
import Foundation
|
||||
|
||||
internal struct ApkRequirement: Hashable {
|
||||
internal struct ApkVersionRequirement: Hashable {
|
||||
let name: String
|
||||
let versionSpec: ApkVersionSpecification
|
||||
|
||||
@ -51,7 +51,7 @@ internal struct ApkRequirement: Hashable {
|
||||
}
|
||||
}
|
||||
|
||||
extension ApkRequirement: CustomStringConvertible {
|
||||
extension ApkVersionRequirement: CustomStringConvertible {
|
||||
var description: String {
|
||||
switch self.versionSpec {
|
||||
case .any: self.name
|
||||
@ -61,7 +61,7 @@ extension ApkRequirement: CustomStringConvertible {
|
||||
}
|
||||
}
|
||||
|
||||
extension ApkRequirement {
|
||||
extension ApkVersionRequirement {
|
||||
enum ParseError: Error, LocalizedError {
|
||||
case brokenSpec
|
||||
|
||||
@ -75,7 +75,7 @@ extension ApkRequirement {
|
||||
|
||||
//MARK: - Private Implementation
|
||||
|
||||
fileprivate extension ApkRequirement {
|
||||
fileprivate extension ApkVersionRequirement {
|
||||
struct ComparatorBits: OptionSet {
|
||||
let rawValue: UInt8
|
||||
|
||||
@ -91,7 +91,7 @@ fileprivate extension ApkRequirement {
|
||||
}
|
||||
|
||||
fileprivate extension ApkVersionSpecification {
|
||||
init(_ bits: ApkRequirement.ComparatorBits, version: Substring) throws(ApkRequirement.ParseError) {
|
||||
init(_ bits: ApkVersionRequirement.ComparatorBits, version: Substring) throws(ApkVersionRequirement.ParseError) {
|
||||
if bits == [ .conflict ] {
|
||||
self = .conflict
|
||||
} else {
|
||||
@ -107,7 +107,7 @@ fileprivate extension ApkVersionSpecification {
|
||||
}
|
||||
|
||||
fileprivate extension ApkVersionSpecification.Operator {
|
||||
init(_ bits: ApkRequirement.ComparatorBits) throws(ApkRequirement.ParseError) {
|
||||
init(_ bits: ApkVersionRequirement.ComparatorBits) throws(ApkVersionRequirement.ParseError) {
|
||||
self = switch bits.subtracting(.conflict) {
|
||||
case .equals: .equals
|
||||
case .less: .less
|
Reference in New Issue
Block a user