basic package graph implemented

This commit is contained in:
2024-11-11 21:06:37 +11:00
parent af87395545
commit cf5e1a3f35
10 changed files with 240 additions and 61 deletions

View File

@ -0,0 +1,35 @@
/*
* darwin-apk © 2024 Gay Pizza Specifications
* SPDX-License-Identifier: Apache-2.0
*/
import Foundation
class ApkPackageGraphNode {
private weak var graph: ApkPackageGraph!
let package: ApkIndexPackage
//private var _parents = NSHashTable<ApkPackageGraphNode>.weakObjects()
//private var _children = NSHashTable<ApkPackageGraphNode>.weakObjects()
var parents = [ApkIndexRequirementRef]()
var children: [ApkIndexRequirementRef]
internal init(package: ApkIndexPackage, children: [ApkIndexRequirementRef]) {
self.package = package
self.children = children
}
}
extension ApkPackageGraphNode: CustomStringConvertible {
var description: String {
var result = "node[\(self.package.name)]"
if !self.parents.isEmpty {
result += ", parents[\(self.parents.lazy.map(\.description).joined(separator: ", "))]"
}
if !self.children.isEmpty {
result += ", children[\(self.children.lazy.map(\.description).joined(separator: ", "))]"
}
return result
}
}