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