diff --git a/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface index 66222f8..bdadd23 100644 --- a/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 58eefa0..4c0c004 100644 --- a/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface index ded90b2..68567b8 100644 --- a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface index 6324bb9..d9b52cd 100644 --- a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface index 7d095fd..fe72dd1 100644 --- a/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-xros-simulator.swiftinterface b/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-xros-simulator.swiftinterface index 5a73588..4f4169a 100644 --- a/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-xros-simulator.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-xros-simulator.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-xros-simulator.swiftinterface b/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-xros-simulator.swiftinterface index 8e5f79a..86da1bf 100644 --- a/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-xros-simulator.swiftinterface +++ b/AG/2024/AttributeGraph.xcframework/xros-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-xros-simulator.swiftinterface @@ -7,19 +7,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -29,24 +29,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -69,22 +114,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -93,9 +138,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -119,62 +164,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -183,85 +195,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -280,7 +355,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -306,89 +381,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -399,8 +458,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -424,86 +483,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -517,46 +531,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -564,16 +559,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -597,16 +588,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -633,8 +624,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -688,21 +679,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/2024/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface b/AG/2024/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface index 4868737..8f6ecb7 100644 --- a/AG/2024/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface +++ b/AG/2024/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface @@ -3,19 +3,19 @@ public import Swift public import _Concurrency public import _StringProcessing public import _SwiftConcurrencyShims -extension AnyAttribute { +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to _: Value.Type) -> AttributeGraph.Attribute - public static var current: AnyAttribute? { + public static var current: AttributeGraph.AnyAttribute? { get } - public func unsafeOffset(at offset: Swift.Int) -> AnyAttribute - public func setFlags(_ newFlags: AnyAttribute.Flags, mask: AnyAttribute.Flags) - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) + public func unsafeOffset(at offset: Swift.Int) -> AttributeGraph.AnyAttribute + public func setFlags(_ newFlags: AttributeGraph.AnyAttribute.Flags, mask: AttributeGraph.AnyAttribute.Flags) + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> Swift.Void) - public func breadthFirstSearch(options _: SearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options _: AttributeGraph.SearchOptions = [], _: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: any Any.Type { get } @@ -25,24 +25,69 @@ extension AnyAttribute { public var valueType: any Any.Type { get } - public var indirectDependency: AnyAttribute? { + public var indirectDependency: AttributeGraph.AnyAttribute? { get nonmutating set } } -extension AnyAttribute : Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute : Swift.CustomStringConvertible { @inlinable public var description: Swift.String { get { "#\(rawValue)" } } } -public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void +public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void +@frozen public struct PointerOffset { + public var byteOffset: Swift.Int + public init(byteOffset: Swift.Int) +} +extension AttributeGraph.PointerOffset { + public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset { + public static func invalidScenePointer() -> Swift.UnsafeMutablePointer + public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset + public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset +} +extension AttributeGraph.PointerOffset where Base == Member { + public init() +} +extension Swift.UnsafePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + } + public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer +} +extension Swift.UnsafeMutablePointer { + public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { + unsafeAddress + nonmutating unsafeMutableAddress + } + public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer +} +@frozen public struct External { + public init() +} +extension AttributeGraph.External : AttributeGraph._AttributeBody { + public static var comparisonMode: AttributeGraph.ComparisonMode { + get + } + public static var flags: AttributeGraph.External.Flags { + get + } + public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) +} +extension AttributeGraph.External : Swift.CustomStringConvertible { + public var description: Swift.String { + get + } +} @frozen @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: AnyAttribute - public init(identifier: AnyAttribute) + public var identifier: AttributeGraph.AnyAttribute + public init(identifier: AttributeGraph.AnyAttribute) public init(_ attribute: AttributeGraph.Attribute) public init(value: Value) public init(type _: Value.Type) - public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: _AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody + public init(body: Swift.UnsafePointer, value: Swift.UnsafePointer?, flags: AttributeGraph._AttributeType.Flags = [], update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) where Body : AttributeGraph._AttributeBody public var wrappedValue: Value { unsafeAddress nonmutating set @@ -65,22 +110,22 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func applying(offset: AttributeGraph.PointerOffset) -> AttributeGraph.Attribute public func visitBody(_ visitor: inout Body) where Body : AttributeGraph.AttributeBodyVisitor public func mutateBody(as type: V.Type, invalidating: Swift.Bool, _ body: (inout V) -> Swift.Void) - public func breadthFirstSearch(options: SearchOptions = [], _ body: (AnyAttribute) -> Swift.Bool) -> Swift.Bool - public var graph: Graph { + public func breadthFirstSearch(options: AttributeGraph.SearchOptions = [], _ body: (AttributeGraph.AnyAttribute) -> Swift.Bool) -> Swift.Bool + public var graph: AttributeGraph.Graph { get } - public var subgraph: Subgraph { + public var subgraph: AttributeGraph.Subgraph { get } public var value: Value { unsafeAddress nonmutating set } - public var valueState: ValueState { + public var valueState: AttributeGraph.ValueState { get } - public func valueAndFlags(options: AGValueOptions = []) -> (value: Value, flags: AGChangedValueFlags) - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public func valueAndFlags(options: AttributeGraph.AGValueOptions = []) -> (value: Value, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) public func setValue(_ value: Value) -> Swift.Bool public var hasValue: Swift.Bool { get @@ -89,9 +134,9 @@ public typealias AttributeUpdateBlock = () -> (Swift.UnsafeMutableRawPointer, An public func prefetchValue() public func invalidateValue() public func validate() - public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) - public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Swift.Int) - public typealias Flags = AnyAttribute.Flags + public func addInput(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AttributeGraph.Attribute, options: AttributeGraph.AGInputOptions = [], token: Swift.Int) + public typealias Flags = AttributeGraph.AnyAttribute.Flags public var flags: AttributeGraph.Attribute.Flags { get nonmutating set @@ -115,62 +160,29 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where Value == R.Value, R : AttributeGraph.StatefulRule } @_silgen_name("AGGraphCreateAttribute") -@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AnyAttribute +@inline(__always) @inlinable internal func AGGraphCreateAttribute(index: Swift.Int, body: Swift.UnsafeRawPointer, value: Swift.UnsafeRawPointer?) -> AttributeGraph.AnyAttribute @_silgen_name("AGGraphGetValue") -@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetValue(_ attribute: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphSetValue") -@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool -@frozen public struct External { - public init() +@inline(__always) @inlinable internal func AGGraphSetValue(_ attribute: AttributeGraph.AnyAttribute, valuePointer: Swift.UnsafePointer) -> Swift.Bool +public protocol AttributeBodyVisitor { + func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody } -extension AttributeGraph.External : AttributeGraph._AttributeBody { - public static var comparisonMode: ComparisonMode { - get - } - public static var flags: AttributeGraph.External.Flags { - get - } - public static func _update(_: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) +public protocol ObservedAttribute : AttributeGraph._AttributeBody { + mutating func destroy() } -extension AttributeGraph.External : Swift.CustomStringConvertible { - public var description: Swift.String { +extension AttributeGraph.ObservedAttribute { + public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) + public static var _hasDestroySelf: Swift.Bool { get } } -@frozen public struct PointerOffset { - public var byteOffset: Swift.Int - public init(byteOffset: Swift.Int) -} -extension AttributeGraph.PointerOffset { - public static func + (lhs: AttributeGraph.PointerOffset, rhs: AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset { - public static func invalidScenePointer() -> Swift.UnsafeMutablePointer - public static func of(_ member: inout Member) -> AttributeGraph.PointerOffset - public static func offset(_ body: (inout Base) -> AttributeGraph.PointerOffset) -> AttributeGraph.PointerOffset -} -extension AttributeGraph.PointerOffset where Base == Member { - public init() -} -extension Swift.UnsafePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - } - public static func + (lhs: Swift.UnsafePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafePointer -} -extension Swift.UnsafeMutablePointer { - public subscript(offset offset: AttributeGraph.PointerOffset) -> Member { - unsafeAddress - nonmutating unsafeMutableAddress - } - public static func + (lhs: Swift.UnsafeMutablePointer, rhs: AttributeGraph.PointerOffset) -> Swift.UnsafeMutablePointer -} public protocol _AttributeBody { static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) static var _hasDestroySelf: Swift.Bool { get } static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - static var comparisonMode: ComparisonMode { get } - typealias Flags = _AttributeType.Flags + static var comparisonMode: AttributeGraph.ComparisonMode { get } + typealias Flags = AttributeGraph._AttributeType.Flags static var flags: Self.Flags { get } } extension AttributeGraph._AttributeBody { @@ -179,85 +191,148 @@ extension AttributeGraph._AttributeBody { get } public static func _updateDefault(_ pointer: Swift.UnsafeMutableRawPointer) - public static var comparisonMode: ComparisonMode { + public static var comparisonMode: AttributeGraph.ComparisonMode { get } public static var flags: Self.Flags { get } } -public protocol AttributeBodyVisitor { - func visit(body: Swift.UnsafePointer) where Body : AttributeGraph._AttributeBody -} -public protocol ObservedAttribute : AttributeGraph._AttributeBody { - mutating func destroy() -} -extension AttributeGraph.ObservedAttribute { - public static func _destroySelf(_ pointer: Swift.UnsafeMutableRawPointer) - public static var _hasDestroySelf: Swift.Bool { +@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { + internal var base: AttributeGraph.AnyWeakAttribute + public init(base: AttributeGraph.AnyWeakAttribute) + public init() + public init(_ attribute: AttributeGraph.Attribute) + public init(_ attribute: AttributeGraph.Attribute?) + public var wrappedValue: Value? { get } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: AnyAttribute - public init(source: AttributeGraph.Attribute) - public var source: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute? { get - nonmutating set + set + _modify } - public var dependency: AnyAttribute? { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { get - nonmutating set } - public var value: Value { + public var attribute: AttributeGraph.Attribute? { get - nonmutating set - nonmutating _modify + set } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool) - public var wrappedValue: Value { + public var value: Value? { get - nonmutating set - nonmutating _modify } - public var projectedValue: AttributeGraph.Attribute { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +} +extension AttributeGraph.WeakAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { +} +extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { + public var description: Swift.String { get } } -extension AttributeGraph.IndirectAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool +extension AttributeGraph.AnyWeakAttribute { + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ weakAttribute: AttributeGraph.WeakAttribute) + public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute + public var attribute: AttributeGraph.AnyAttribute? { + get + set + } +} +extension AttributeGraph.AnyWeakAttribute : Swift.Hashable { + public static func == (lhs: AttributeGraph.AnyWeakAttribute, rhs: AttributeGraph.AnyWeakAttribute) -> Swift.Bool public func hash(into hasher: inout Swift.Hasher) public var hashValue: Swift.Int { get } } -@frozen public struct AnyOptionalAttribute { - public var identifier: AnyAttribute - public init() - public init(_ attribute: AnyAttribute) - public init(_ attribute: AnyAttribute?) - public init(_ attribute: AttributeGraph.OptionalAttribute) - public static var current: AttributeGraph.AnyOptionalAttribute { +extension AttributeGraph.AnyWeakAttribute : Swift.CustomStringConvertible { + @_alwaysEmitIntoClient public var description: Swift.String { + get { attribute?.description ?? "nil" } + } +} +public protocol Rule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + var value: Self.Value { get } +} +extension AttributeGraph.Rule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.Rule { + public var attribute: AttributeGraph.Attribute { get } - public var attribute: AnyAttribute? { + public var context: AttributeGraph.RuleContext { get - set } - public func map(_ body: (AnyAttribute) -> Value) -> Value? - public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { +extension AttributeGraph.Rule where Self : Swift.Hashable { + public func cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value + public func cachedValueIfExists(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?) -> Self.Value? + public static func _cachedValue(options: AttributeGraph.AGCachedValueOptions = [], owner: AttributeGraph.AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer +} +@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var arg: AttributeGraph.Attribute + public let body: (Source) -> Value + public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) + public var value: Value { + get + } + public static var flags: AttributeGraph.Map.Flags { + get + } + public var description: Swift.String { get } } -extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { +public protocol StatefulRule : AttributeGraph._AttributeBody { + associatedtype Value + static var initialValue: Self.Value? { get } + mutating func updateValue() +} +extension AttributeGraph.StatefulRule { + public static var initialValue: Self.Value? { + get + } + public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AttributeGraph.AnyAttribute) + public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) +} +extension AttributeGraph.StatefulRule { + public var attribute: AttributeGraph.Attribute { + get + } + public var context: AttributeGraph.RuleContext { + get + } + public var value: Self.Value { + unsafeAddress + nonmutating set + } + public var hasValue: Swift.Bool { + get + } +} +@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { + public var root: AttributeGraph.Attribute + public var keyPath: Swift.KeyPath + public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) + public var value: Value { + get + } + public static var flags: AttributeGraph.Focus.Flags { + get + } public var description: Swift.String { get } @@ -276,7 +351,7 @@ extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var value: Value? { get } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? public func map(_ body: (AttributeGraph.Attribute) -> V) -> V? public var wrappedValue: Value? { get @@ -302,89 +377,73 @@ extension AttributeGraph.OptionalAttribute : Swift.CustomStringConvertible { get } } -@frozen public struct Focus : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var root: AttributeGraph.Attribute - public var keyPath: Swift.KeyPath - public init(root: AttributeGraph.Attribute, keyPath: Swift.KeyPath) - public var value: Value { - get - } - public static var flags: AttributeGraph.Focus.Flags { +@frozen public struct AnyOptionalAttribute { + public var identifier: AttributeGraph.AnyAttribute + public init() + public init(_ attribute: AttributeGraph.AnyAttribute) + public init(_ attribute: AttributeGraph.AnyAttribute?) + public init(_ attribute: AttributeGraph.OptionalAttribute) + public static var current: AttributeGraph.AnyOptionalAttribute { get } - public var description: Swift.String { + public var attribute: AttributeGraph.AnyAttribute? { get + set } + public func map(_ body: (AttributeGraph.AnyAttribute) -> Value) -> Value? + public func unsafeCast(to _: Value.Type) -> AttributeGraph.OptionalAttribute } -@frozen public struct Map : AttributeGraph.Rule, Swift.CustomStringConvertible { - public var arg: AttributeGraph.Attribute - public let body: (Source) -> Value - public init(_ arg: AttributeGraph.Attribute, _ body: @escaping (Source) -> Value) - public var value: Value { - get - } - public static var flags: AttributeGraph.Map.Flags { +extension AttributeGraph.AnyOptionalAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.AnyOptionalAttribute, b: AttributeGraph.AnyOptionalAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } +} +extension AttributeGraph.AnyOptionalAttribute : Swift.CustomStringConvertible { public var description: Swift.String { get } } -public protocol Rule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - var value: Self.Value { get } -} -extension AttributeGraph.Rule { - public static var initialValue: Self.Value? { +@frozen @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { + public let identifier: AttributeGraph.AnyAttribute + public init(source: AttributeGraph.Attribute) + public var source: AttributeGraph.Attribute { get + nonmutating set } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.Rule { - public var attribute: AttributeGraph.Attribute { + public var dependency: AttributeGraph.AnyAttribute? { get + nonmutating set } - public var context: AttributeGraph.RuleContext { + public var value: Value { get + nonmutating set + nonmutating _modify } -} -extension AttributeGraph.Rule where Self : Swift.Hashable { - public func cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value - public func cachedValueIfExists(options: AGCachedValueOptions = [], owner: AnyAttribute?) -> Self.Value? - public static func _cachedValue(options: AGCachedValueOptions = [], owner: AnyAttribute?, hashValue: Swift.Int, bodyPtr: Swift.UnsafeRawPointer, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.UnsafePointer -} -public protocol StatefulRule : AttributeGraph._AttributeBody { - associatedtype Value - static var initialValue: Self.Value? { get } - mutating func updateValue() -} -extension AttributeGraph.StatefulRule { - public static var initialValue: Self.Value? { + public func changedValue(options: AttributeGraph.AGValueOptions = []) -> (value: Value, changed: Swift.Bool) + public var wrappedValue: Value { get + nonmutating set + nonmutating _modify } - public static func _update(_ pointer: Swift.UnsafeMutableRawPointer, attribute _: AnyAttribute) - public static func _updateDefault(_: Swift.UnsafeMutableRawPointer) -} -extension AttributeGraph.StatefulRule { - public var attribute: AttributeGraph.Attribute { + public var projectedValue: AttributeGraph.Attribute { get } - public var context: AttributeGraph.RuleContext { + public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute { get } - public var value: Self.Value { - unsafeAddress - nonmutating set - } - public var hasValue: Swift.Bool { +} +extension AttributeGraph.IndirectAttribute : Swift.Hashable { + public static func == (a: AttributeGraph.IndirectAttribute, b: AttributeGraph.IndirectAttribute) -> Swift.Bool + public func hash(into hasher: inout Swift.Hasher) + public var hashValue: Swift.Int { get } } @frozen public struct AnyRuleContext : Swift.Equatable { - public var attribute: AnyAttribute - public init(attribute: AnyAttribute) + public var attribute: AttributeGraph.AnyAttribute + public init(attribute: AttributeGraph.AnyAttribute) public init(_ context: AttributeGraph.RuleContext) public subscript(attribute: AttributeGraph.Attribute) -> V { unsafeAddress @@ -395,8 +454,8 @@ extension AttributeGraph.StatefulRule { public subscript(optionalAttribute: AttributeGraph.OptionalAttribute) -> V? { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public func unsafeCast(to _: V.Type) -> AttributeGraph.RuleContext public static func == (a: AttributeGraph.AnyRuleContext, b: AttributeGraph.AnyRuleContext) -> Swift.Bool @@ -420,86 +479,41 @@ extension AttributeGraph.StatefulRule { public var hasValue: Swift.Bool { get } - public func valueAndFlags(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, flags: AGChangedValueFlags) - public func changedValue(of input: AttributeGraph.Attribute, options: AGValueOptions = []) -> (value: V, changed: Swift.Bool) + public func valueAndFlags(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, flags: AttributeGraph.AGChangedValueFlags) + public func changedValue(of input: AttributeGraph.Attribute, options: AttributeGraph.AGValueOptions = []) -> (value: V, changed: Swift.Bool) public func update(body: () -> Swift.Void) public static func == (a: AttributeGraph.RuleContext, b: AttributeGraph.RuleContext) -> Swift.Bool } @_silgen_name("AGGraphGetInputValue") -@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: AGValueOptions = [], type: Value.Type = Value.self) -> AGValue +@inline(__always) @inlinable internal func AGGraphGetInputValue(_ attribute: AttributeGraph.AnyAttribute, input: AttributeGraph.AnyAttribute, options: AttributeGraph.AGValueOptions = [], type: Value.Type = Value.self) -> AttributeGraph.AGValue @_silgen_name("AGGraphWithUpdate") -@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Swift.Void) -extension AnyWeakAttribute { - public init(_ attribute: AnyAttribute?) - public init(_ weakAttribute: AttributeGraph.WeakAttribute) - public func unsafeCast(to _: Value.Type) -> AttributeGraph.WeakAttribute - public var attribute: AnyAttribute? { - get - set - } -} -extension AnyWeakAttribute : Swift.Hashable { - public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } -} -extension AnyWeakAttribute : Swift.CustomStringConvertible { - @_alwaysEmitIntoClient public var description: Swift.String { - get { attribute?.description ?? "nil" } - } -} -@frozen @propertyWrapper @dynamicMemberLookup public struct WeakAttribute { - internal var base: AnyWeakAttribute - public init(base: AnyWeakAttribute) - public init() - public init(_ attribute: AttributeGraph.Attribute) - public init(_ attribute: AttributeGraph.Attribute?) - public var wrappedValue: Value? { - get - } - public var projectedValue: AttributeGraph.Attribute? { - get - set - _modify - } - public subscript(dynamicMember keyPath: Swift.KeyPath) -> AttributeGraph.Attribute? { - get - } - public var attribute: AttributeGraph.Attribute? { - get - set - } - public var value: Value? { - get - } - public func changedValue(options: AGValueOptions = []) -> (value: Value, changed: Swift.Bool)? +@inline(__always) @inlinable internal func AGGraphWithUpdate(_ attribute: AttributeGraph.AnyAttribute, body: () -> Swift.Void) +extension AttributeGraph.Subgraph { + public typealias Flags = AttributeGraph.AnyAttribute.Flags + public typealias ChildFlags = AttributeGraph.AnyAttribute.Flags } -extension AttributeGraph.WeakAttribute : Swift.Hashable { - public static func == (a: AttributeGraph.WeakAttribute, b: AttributeGraph.WeakAttribute) -> Swift.Bool - public func hash(into hasher: inout Swift.Hasher) - public var hashValue: Swift.Int { - get - } +extension AttributeGraph.Subgraph { + public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int + public func apply(_ body: () -> Value) -> Value + public func forEach(_ flags: AttributeGraph.Subgraph.Flags, _ callback: (AttributeGraph.AnyAttribute) -> Swift.Void) } -extension AttributeGraph.WeakAttribute : Swift.CustomStringConvertible { - public var description: Swift.String { - get - } +extension AttributeGraph.Subgraph { + public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) + public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) + public static func endTreeElement(value: AttributeGraph.Attribute) } -extension Graph { - public static func typeIndex(ctx: GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: Metadata, flags: _AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AnyAttribute) -> Swift.Void) -> Swift.Int +extension AttributeGraph.Graph { + public static func typeIndex(ctx: AttributeGraph.GraphContext, body: any AttributeGraph._AttributeBody.Type, valueType: AttributeGraph.Metadata, flags: AttributeGraph._AttributeType.Flags, update: () -> (Swift.UnsafeMutableRawPointer, AttributeGraph.AnyAttribute) -> Swift.Void) -> Swift.Int } -extension Graph { +extension AttributeGraph.Graph { public static func withoutUpdate(_ body: () -> V) -> V public func withoutSubgraphInvalidation(_ body: () -> V) -> V public func withDeadline(_: Swift.UInt64, _: () -> V) -> V - public func onInvalidation(_ callback: @escaping (AnyAttribute) -> Swift.Void) + public func onInvalidation(_ callback: @escaping (AttributeGraph.AnyAttribute) -> Swift.Void) public func onUpdate(_ callback: @escaping () -> Swift.Void) public func withMainThreadHandler(_: (() -> Swift.Void) -> Swift.Void, do: () -> Swift.Void) } -extension Graph { +extension AttributeGraph.Graph { @_transparent public func startProfiling() { __AGGraphStartProfiling(self) } @@ -513,46 +527,27 @@ extension Graph { public static func stopProfiling() public static func resetProfile() } -extension Graph { +extension AttributeGraph.Graph { @_transparent public var mainUpdates: Swift.Int { @_transparent get { numericCast(counter(for: .mainThreadUpdates)) } } } -extension Graph { +extension AttributeGraph.Graph { @_silgen_name("AGGraphGetOutputValue") @inline(__always) @inlinable public static func outputValue() -> Swift.UnsafePointer? @_silgen_name("AGGraphSetOutputValue") @inline(__always) @inlinable public static func setOutputValue(_ value: Swift.UnsafePointer) } -extension Graph { - @_transparent public static func anyInputsChanged(excluding excludedInputs: [AnyAttribute]) -> Swift.Bool { +extension AttributeGraph.Graph { + @_transparent public static func anyInputsChanged(excluding excludedInputs: [AttributeGraph.AnyAttribute]) -> Swift.Bool { return __AGGraphAnyInputsChanged(excludedInputs, excludedInputs.count) } } -extension Graph { +extension AttributeGraph.Graph { public func archiveJSON(name: Swift.String?) } -extension Subgraph { - public typealias Flags = AnyAttribute.Flags - public typealias ChildFlags = AnyAttribute.Flags -} -extension Subgraph { - public func addObserver(_ observer: @escaping () -> Swift.Void) -> Swift.Int - public func apply(_ body: () -> Value) -> Value - public func forEach(_ flags: Subgraph.Flags, _ callback: (AnyAttribute) -> Swift.Void) -} -extension Subgraph { - public static func beginTreeElement(value: AttributeGraph.Attribute, flags: Swift.UInt32) - public static func addTreeValue(_ value: AttributeGraph.Attribute, forKey key: Swift.UnsafePointer, flags: Swift.UInt32) - public static func endTreeElement(value: AttributeGraph.Attribute) -} -public func compareValues(_ lhs: Value, _ rhs: Value, mode: ComparisonMode = .equatableAlways) -> Swift.Bool -public func compareValues(_ lhs: Value, _ rhs: Value, options: ComparisonOptions) -> Swift.Bool -extension ComparisonOptions { - public init(mode: ComparisonMode) -} public func forEachField(of type: any Any.Type, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Void) -extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { +extension AttributeGraph.Metadata : Swift.Hashable, Swift.CustomStringConvertible { public init(_ type: any Any.Type) public var type: any Any.Type { get @@ -560,16 +555,12 @@ extension Metadata : Swift.Hashable, Swift.CustomStringConvertible { public var description: Swift.String { get } - public func forEachField(options: Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool + public func forEachField(options: AttributeGraph.Metadata.ApplyOptions, do body: (Swift.UnsafePointer, Swift.Int, any Any.Type) -> Swift.Bool) -> Swift.Bool } -extension Signature : Swift.Equatable { - public static func == (lhs: Signature, rhs: Signature) -> Swift.Bool +extension AttributeGraph.Signature : Swift.Equatable { + public static func == (lhs: AttributeGraph.Signature, rhs: AttributeGraph.Signature) -> Swift.Bool } -@discardableResult -public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool -@discardableResult -public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool -extension TupleType { +extension AttributeGraph.TupleType { @_transparent public init(_ types: [any Any.Type]) { self.init(count: types.count, elements: types.map(Metadata.init)) } @@ -593,16 +584,16 @@ extension TupleType { @_transparent public func offset(at index: Swift.Int, as type: T.Type) -> Swift.Int { elementOffset(at: index, type: Metadata(type)) } - @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: TupleType.CopyOptions) { + @_transparent public func setElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, from srcValue: Swift.UnsafePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleSetElement(self, tupleValue, index, srcValue, Metadata(T.self), options) } - @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: TupleType.CopyOptions) { + @_transparent public func getElement(in tupleValue: Swift.UnsafeMutableRawPointer, at index: Swift.Int, to dstValue: Swift.UnsafeMutablePointer, options: AttributeGraph.TupleType.CopyOptions) { __AGTupleGetElement(self, tupleValue, index, dstValue, Metadata(T.self), options) } } @_silgen_name("AGTupleWithBuffer") -public func withUnsafeTuple(of type: TupleType, count: Swift.Int, _ body: (UnsafeMutableTuple) -> Swift.Void) -extension UnsafeTuple { +public func withUnsafeTuple(of type: AttributeGraph.TupleType, count: Swift.Int, _ body: (AttributeGraph.UnsafeMutableTuple) -> Swift.Void) +extension AttributeGraph.UnsafeTuple { @_transparent public var count: Swift.Int { @_transparent get { type.count } } @@ -629,8 +620,8 @@ extension UnsafeTuple { @_transparent unsafeAddress { address(of: index, as: T.self) } } } -extension UnsafeMutableTuple { - @_transparent public init(with tupleType: TupleType) { +extension AttributeGraph.UnsafeMutableTuple { + @_transparent public init(with tupleType: AttributeGraph.TupleType) { self.init( type: tupleType, value: UnsafeMutableRawPointer.allocate( @@ -684,21 +675,30 @@ extension UnsafeMutableTuple { @_transparent nonmutating unsafeMutableAddress { address(of: index, as: T.self) } } } -extension AttributeGraph.Attribute : Swift.Sendable {} -extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} -extension AttributeGraph.External : Swift.Sendable {} -extension AttributeGraph.External : Swift.BitwiseCopyable {} +@discardableResult +public func withUnsafePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeRawPointer) -> ()) -> Swift.Bool +@discardableResult +public func withUnsafeMutablePointerToEnumCase(of value: Swift.UnsafeMutablePointer, do body: (Swift.Int, any Any.Type, Swift.UnsafeMutableRawPointer) -> ()) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, mode: AttributeGraph.ComparisonMode = .equatableAlways) -> Swift.Bool +public func compareValues(_ lhs: Value, _ rhs: Value, options: AttributeGraph.ComparisonOptions) -> Swift.Bool +extension AttributeGraph.ComparisonOptions { + public init(mode: AttributeGraph.ComparisonMode) +} extension AttributeGraph.PointerOffset : Swift.Sendable {} extension AttributeGraph.PointerOffset : Swift.BitwiseCopyable {} -extension AttributeGraph.IndirectAttribute : Swift.Sendable {} -extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} -extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.External : Swift.Sendable {} +extension AttributeGraph.External : Swift.BitwiseCopyable {} +extension AttributeGraph.Attribute : Swift.Sendable {} +extension AttributeGraph.Attribute : Swift.BitwiseCopyable {} +extension AttributeGraph.WeakAttribute : Swift.Sendable {} +extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.OptionalAttribute : Swift.Sendable {} extension AttributeGraph.OptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.Sendable {} +extension AttributeGraph.AnyOptionalAttribute : Swift.BitwiseCopyable {} +extension AttributeGraph.IndirectAttribute : Swift.Sendable {} +extension AttributeGraph.IndirectAttribute : Swift.BitwiseCopyable {} extension AttributeGraph.AnyRuleContext : Swift.Sendable {} extension AttributeGraph.AnyRuleContext : Swift.BitwiseCopyable {} extension AttributeGraph.RuleContext : Swift.Sendable {} extension AttributeGraph.RuleContext : Swift.BitwiseCopyable {} -extension AttributeGraph.WeakAttribute : Swift.Sendable {} -extension AttributeGraph.WeakAttribute : Swift.BitwiseCopyable {} diff --git a/AG/generate_swiftinterface.sh b/AG/generate_swiftinterface.sh new file mode 100755 index 0000000..def711f --- /dev/null +++ b/AG/generate_swiftinterface.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +## Generate template.swiftinterface from DeviceSwiftShims sources. +## +## This compiles the DeviceSwiftShims Swift files against the AttributeGraph xcframework +## to produce a .swiftinterface, then transforms it into the template used by update.sh: +## 1. Strip the compiler header comments (update.sh generates per-platform headers) + +# A `realpath` alternative using the default C implementation. +filepath() { + [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" +} + +SCRIPT_DIR="$(dirname "$(filepath "$0")")" +VERSION=${DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE:-2024} +FRAMEWORK_ROOT="${SCRIPT_DIR}/${VERSION}" +SHIMS_DIR="${SCRIPT_DIR}/DeviceSwiftShims" +TEMPLATE_PATH="${FRAMEWORK_ROOT}/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface" + +# Verify Swift compiler version matches the expected version for this framework +EXPECTED_SWIFT_VERSION="6.1" # 2024 -> 6.1, 2025 -> 6.2 +SWIFT_VERSION=$(xcrun swiftc --version 2>&1 | grep -o 'Swift version [0-9]*\.[0-9]*' | head -1 | awk '{print $3}') +if [ "${SWIFT_VERSION}" != "${EXPECTED_SWIFT_VERSION}" ]; then + echo "Error: expected Swift ${EXPECTED_SWIFT_VERSION} but found Swift ${SWIFT_VERSION}" + echo "Set DEVELOPER_DIR to the correct Xcode version" + exit 1 +fi + +TMPDIR_WORK=$(mktemp -d) +trap "rm -rf ${TMPDIR_WORK}" EXIT + +GENERATED="${TMPDIR_WORK}/generated.swiftinterface" + +# Resolve the iOS Simulator SDK version for the -target flag +IOS_SDK_VERSION=$(xcrun --sdk iphonesimulator --show-sdk-version) + +# Compile DeviceSwiftShims against the simulator xcframework to emit a swiftinterface +xcrun --sdk iphonesimulator swiftc \ + -emit-module-interface-path "${GENERATED}" \ + -emit-module-path "${TMPDIR_WORK}/module.swiftmodule" \ + -module-name AttributeGraph \ + -enable-library-evolution \ + -swift-version 5 \ + -Osize \ + -enable-upcoming-feature InternalImportsByDefault \ + -enable-experimental-feature Extern \ + -target "arm64-apple-ios${IOS_SDK_VERSION}-simulator" \ + -F "${FRAMEWORK_ROOT}/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/" \ + $(find "${SHIMS_DIR}" -name '*.swift') \ + 2>/dev/null + +if [ ! -f "${GENERATED}" ]; then + echo "Error: failed to generate swiftinterface" + exit 1 +fi + +# Strip the compiler header comments (update.sh generates per-platform headers) +sed -e '/^\/\/ swift-/d' \ + "${GENERATED}" > "${TEMPLATE_PATH}" + +echo "Generated: ${TEMPLATE_PATH}" diff --git a/AG/update.sh b/AG/update.sh index 11950f7..f05888f 100755 --- a/AG/update.sh +++ b/AG/update.sh @@ -53,6 +53,9 @@ update_version_in_header() { sed -i '' "s/#define ATTRIBUTEGRAPH_RELEASE [0-9]\{4\}/#define ATTRIBUTEGRAPH_RELEASE ${version}/g" "$file" } +# Regenerate template.swiftinterface from DeviceSwiftShims sources +DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE=${VERSION} "$(dirname "$(filepath "$0")")/generate_swiftinterface.sh" + generate_framework() { local framework_name=$1 local arch_name=$2 diff --git a/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/arm64-apple-ios-simulator.swiftinterface index 80e4218..e274090 100644 --- a/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -2,7 +2,6 @@ // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.16.112 clang-1800.1.29) // swift-module-flags: -target arm64-apple-ios26.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -Osize -enable-upcoming-feature InternalImportsByDefault -enable-experimental-feature Extern -module-name Gestures // swift-module-flags-ignorable: -interface-compiler-version 6.2 - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 8f32bad..43fc32d 100644 --- a/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/GF/2025/Gestures.xcframework/ios-arm64-x86_64-simulator/Gestures.framework/Modules/Gestures.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -2,7 +2,6 @@ // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.16.112 clang-1800.1.29) // swift-module-flags: -target x86_64-apple-ios26.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -Osize -enable-upcoming-feature InternalImportsByDefault -enable-experimental-feature Extern -module-name Gestures // swift-module-flags-ignorable: -interface-compiler-version 6.2 - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64-apple-macos.swiftinterface b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64-apple-macos.swiftinterface index 4326133..383cee2 100644 --- a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64-apple-macos.swiftinterface +++ b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64-apple-macos.swiftinterface @@ -2,7 +2,6 @@ // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.16.112 clang-1800.1.29) // swift-module-flags: -target arm64-apple-macos26.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -Osize -enable-upcoming-feature InternalImportsByDefault -enable-experimental-feature Extern -module-name Gestures // swift-module-flags-ignorable: -interface-compiler-version 6.2 - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64e-apple-macos.swiftinterface b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64e-apple-macos.swiftinterface index e537553..e9550b7 100644 --- a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64e-apple-macos.swiftinterface +++ b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/arm64e-apple-macos.swiftinterface @@ -2,7 +2,6 @@ // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.16.112 clang-1800.1.29) // swift-module-flags: -target arm64e-apple-macos26.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -Osize -enable-upcoming-feature InternalImportsByDefault -enable-experimental-feature Extern -module-name Gestures // swift-module-flags-ignorable: -interface-compiler-version 6.2 - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/x86_64-apple-macos.swiftinterface b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/x86_64-apple-macos.swiftinterface index 34902ab..aa2babf 100644 --- a/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/x86_64-apple-macos.swiftinterface +++ b/GF/2025/Gestures.xcframework/macos-arm64e-arm64-x86_64/Gestures.framework/Versions/A/Modules/Gestures.swiftmodule/x86_64-apple-macos.swiftinterface @@ -2,7 +2,6 @@ // swift-compiler-version: Apple Swift version 6.2 effective-5.10 (swiftlang-6.2.0.16.112 clang-1800.1.29) // swift-module-flags: -target x86_64-apple-macos26.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -Osize -enable-upcoming-feature InternalImportsByDefault -enable-experimental-feature Extern -module-name Gestures // swift-module-flags-ignorable: -interface-compiler-version 6.2 - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/2025/Sources/Modules/Gestures.swiftmodule/template.swiftinterface b/GF/2025/Sources/Modules/Gestures.swiftmodule/template.swiftinterface index f17071f..750b397 100644 --- a/GF/2025/Sources/Modules/Gestures.swiftmodule/template.swiftinterface +++ b/GF/2025/Sources/Modules/Gestures.swiftmodule/template.swiftinterface @@ -1,4 +1,3 @@ - @_exported public import Gestures public import Swift public import _Concurrency diff --git a/GF/generate_swiftinterface.sh b/GF/generate_swiftinterface.sh new file mode 100755 index 0000000..ca008cb --- /dev/null +++ b/GF/generate_swiftinterface.sh @@ -0,0 +1,66 @@ +#!/bin/bash + +## Generate template.swiftinterface from DeviceSwiftShims sources. +## +## This compiles the DeviceSwiftShims Swift files against the Gestures xcframework +## to produce a .swiftinterface, then transforms it into the template used by update.sh: +## 1. Strip the compiler header comments (update.sh generates per-platform headers) +## 2. Remove `Gestures.` module prefix from extension type names + +# A `realpath` alternative using the default C implementation. +filepath() { + [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" +} + +SCRIPT_DIR="$(dirname "$(filepath "$0")")" +VERSION=${DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE:-2025} +FRAMEWORK_ROOT="${SCRIPT_DIR}/${VERSION}" +SHIMS_DIR="${SCRIPT_DIR}/DeviceSwiftShims" +TEMPLATE_PATH="${FRAMEWORK_ROOT}/Sources/Modules/Gestures.swiftmodule/template.swiftinterface" + +# Verify Swift compiler version matches the expected version for this framework +EXPECTED_SWIFT_VERSION="6.2" # 2024 -> 6.1, 2025 -> 6.2 +SWIFT_VERSION=$(xcrun swiftc --version 2>&1 | grep -o 'Swift version [0-9]*\.[0-9]*' | head -1 | awk '{print $3}') +if [ "${SWIFT_VERSION}" != "${EXPECTED_SWIFT_VERSION}" ]; then + echo "Error: expected Swift ${EXPECTED_SWIFT_VERSION} but found Swift ${SWIFT_VERSION}" + echo "Set DEVELOPER_DIR to the correct Xcode version" + exit 1 +fi + +TMPDIR_WORK=$(mktemp -d) +trap "rm -rf ${TMPDIR_WORK}" EXIT + +GENERATED="${TMPDIR_WORK}/generated.swiftinterface" + +# Resolve the iOS Simulator SDK version for the -target flag +IOS_SDK_VERSION=$(xcrun --sdk iphonesimulator --show-sdk-version) + +# Compile DeviceSwiftShims against the simulator xcframework to emit a swiftinterface +xcrun --sdk iphonesimulator swiftc \ + -emit-module-interface-path "${GENERATED}" \ + -emit-module-path "${TMPDIR_WORK}/module.swiftmodule" \ + -module-name Gestures \ + -enable-library-evolution \ + -swift-version 5 \ + -Osize \ + -enable-upcoming-feature InternalImportsByDefault \ + -enable-experimental-feature Extern \ + -target "arm64-apple-ios${IOS_SDK_VERSION}-simulator" \ + -F "${FRAMEWORK_ROOT}/Gestures.xcframework/ios-arm64-x86_64-simulator/" \ + "${SHIMS_DIR}/Export.swift" \ + $(find "${SHIMS_DIR}/Extension" -name '*.swift' 2>/dev/null) \ + 2>/dev/null + +if [ ! -f "${GENERATED}" ]; then + echo "Error: failed to generate swiftinterface" + exit 1 +fi + +# Transform: +# 1. Strip the compiler header comments (update.sh generates per-platform headers) +# 2. Remove `Gestures.` module prefix from extension declarations +sed -e '/^\/\/ swift-/d' \ + -e 's/extension Gestures\./extension /g' \ + "${GENERATED}" > "${TEMPLATE_PATH}" + +echo "Generated: ${TEMPLATE_PATH}" diff --git a/GF/update.sh b/GF/update.sh index 840b251..486c96e 100755 --- a/GF/update.sh +++ b/GF/update.sh @@ -59,6 +59,9 @@ generate_xcframework() { cp ${FRAMEWORK_ROOT}/Info.plist ${path}/ } +# Regenerate template.swiftinterface from DeviceSwiftShims sources +DARWINPRIVATEFRAMEWORKS_TARGET_RELEASE=${VERSION} "$(dirname "$(filepath "$0")")/generate_swiftinterface.sh" + generate_xcframework $framework_name generate_framework $framework_name ios-arm64-arm64e