From 642eb9faad6b78307982cae2a0a93c4124aecb89 Mon Sep 17 00:00:00 2001 From: Kyle Date: Sat, 28 Sep 2024 23:25:21 +0800 Subject: [PATCH] Update OGAttribute to AnyAttribute --- .../arm64-apple-ios.swiftinterface | 36 ++++++++++--------- .../arm64e-apple-ios.swiftinterface | 36 ++++++++++--------- .../arm64-apple-ios-simulator.swiftinterface | 36 ++++++++++--------- .../x86_64-apple-ios-simulator.swiftinterface | 36 ++++++++++--------- .../arm64-apple-macos.swiftinterface | 36 ++++++++++--------- .../arm64e-apple-macos.swiftinterface | 36 ++++++++++--------- .../x86_64-apple-macos.swiftinterface | 36 ++++++++++--------- .../template.swiftinterface | 36 ++++++++++--------- .../{OGAttribute.swift => AnyAttribute.swift} | 28 ++++++++------- .../Attribute/Attribute/Attribute.swift | 14 ++++---- .../Attribute/Attribute/External.swift | 2 +- .../Indirect/IndirectAttribute.swift | 4 +-- .../Optional/AnyOptionalAttribute.swift | 12 +++---- .../Attribute/Rule/AnyRuleContext.swift | 4 +-- Sources/OpenGraph/Attribute/Rule/Rule.swift | 10 +++--- .../Attribute/Rule/RuleContext.swift | 4 +-- .../Attribute/Rule/StatefulRule.swift | 4 +-- ...Attribute.swift => AnyWeakAttribute.swift} | 18 +++++----- .../Attribute/Weak/WeakAttribute.swift | 10 +++--- Sources/OpenGraph/Graph/OGGraph.swift | 4 +-- Sources/OpenGraph/Graph/OGSubgraph.swift | 4 +-- Sources/OpenGraphShims/GraphShims.swift | 2 -- ...uteTests.swift => AnyAttributeTests.swift} | 24 ++++++------- .../Optional/AnyOptionalAttributeTests.swift | 6 ++-- .../Optional/OptionalAttributeTests.swift | 2 +- .../Attribute/Weak/OGWeakAttributeTests.swift | 16 ++++----- .../GraphShims.swift | 2 -- 27 files changed, 245 insertions(+), 213 deletions(-) rename Sources/OpenGraph/Attribute/Attribute/{OGAttribute.swift => AnyAttribute.swift} (77%) rename Sources/OpenGraph/Attribute/Weak/{OGWeakAttribute.swift => AnyWeakAttribute.swift} (72%) rename Tests/OpenGraphCompatibilityTests/Attribute/Attribute/{OGAttributeTests.swift => AnyAttributeTests.swift} (84%) diff --git a/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios.swiftinterface b/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios.swiftinterface index 3df6df45..e146371a 100644 --- a/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios.swiftinterface +++ b/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-ios.swiftinterface b/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-ios.swiftinterface index 3df6df45..e146371a 100644 --- a/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-ios.swiftinterface +++ b/AG/AttributeGraph.xcframework/ios-arm64-arm64e/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-ios.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface b/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface index 27df2265..5a58a421 100644 --- a/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface +++ b/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-ios-simulator.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface index 1010c8f2..768a1284 100644 --- a/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +++ b/AG/AttributeGraph.xcframework/ios-arm64-x86_64-simulator/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface index 5a69adf3..9d7d6e48 100644 --- a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface +++ b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64-apple-macos.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface index c61cc750..797235e7 100644 --- a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface +++ b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/arm64e-apple-macos.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface index 4bf15b6d..52b27075 100644 --- a/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface +++ b/AG/AttributeGraph.xcframework/macos-arm64e-arm64-x86_64/AttributeGraph.framework/Modules/AttributeGraph.swiftmodule/x86_64-apple-macos.swiftinterface @@ -10,29 +10,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -110,9 +112,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -135,12 +139,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -148,7 +152,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -158,7 +162,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -173,9 +177,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface b/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface index 11e47b45..0405691a 100644 --- a/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface +++ b/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface @@ -6,29 +6,31 @@ import _StringProcessing // MARK: - Attribute Related -// MARK: - AGAttribute +// MARK: - AnyAttribute -extension AGAttribute { +public typealias AnyAttribute = AGAttribute + +extension AttributeGraph.AnyAttribute { public init(_ attribute: AttributeGraph.Attribute) public func unsafeCast(to type: Value.Type) -> AttributeGraph.Attribute - public static var current: AGAttribute? { get } - public func unsafeOffset(at offset: Int) -> AGAttribute + public static var current: AnyAttribute? { get } + public func unsafeOffset(at offset: Int) -> AnyAttribute public func setFlags(_ newFlags: AGAttributeFlags, mask: AGAttributeFlags) - public func addInput(_ attribute: AGAttribute, options: AGInputOptions = [], token: Swift.Int) + public func addInput(_ attribute: AnyAttribute, options: AGInputOptions = [], token: Swift.Int) public func addInput(_ attribute: AttributeGraph.Attribute, options: AGInputOptions = [], token: Int) public func visitBody(_ visitor: inout Visitor); public func mutateBody(as: Value.Type, invalidating: Swift.Bool, _ body: (inout Value) -> ()) - public func breadthFirstSearch(options: AGSearchOptions = [], _: (AGAttribute) -> Swift.Bool) -> Swift.Bool + public func breadthFirstSearch(options: AGSearchOptions = [], _: (AnyAttribute) -> Swift.Bool) -> Swift.Bool public var _bodyType: Any.Type { get } public var _bodyPointer: UnsafeRawPointer { get } public var valueType: Any.Type { get } - public var indirectDependency: AGAttribute? { + public var indirectDependency: AnyAttribute? { get nonmutating set } } -extension AGAttribute: Swift.CustomStringConvertible { +extension AttributeGraph.AnyAttribute: Swift.CustomStringConvertible { public var description: Swift.String { get } } @@ -106,9 +108,11 @@ extension AttributeGraph.Attribute { public init(_ rule: R) where R.Value == Value } -// MARK: - AGWeakAttribute +// MARK: - AnyWeakAttribute + +public typealias AnyWeakAttribute = AGWeakAttribute -extension AGWeakAttribute { +extension AttributeGraph.AnyWeakAttribute { @_alwaysEmitIntoClient public init(_ attribute: AGAttribute?) { self = __AGCreateWeakAttribute(attribute ?? .nil) @@ -131,12 +135,12 @@ extension AGWeakAttribute { return attribute == .nil ? nil : attribute } set { - self = AGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension AGWeakAttribute: Hashable { +extension AttributeGraph.AnyWeakAttribute: Hashable { @_alwaysEmitIntoClient public func hash(into hasher: inout Swift.Hasher) { hasher.combine(raw_attribute) @@ -144,7 +148,7 @@ extension AGWeakAttribute: Hashable { } @_alwaysEmitIntoClient - public static func == (lhs: AGWeakAttribute, rhs: AGWeakAttribute) -> Swift.Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Swift.Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -154,7 +158,7 @@ extension AGWeakAttribute: Hashable { } } -extension AGWeakAttribute: CustomStringConvertible { +extension AttributeGraph.AnyWeakAttribute: CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" @@ -169,9 +173,9 @@ extension AGWeakAttribute: CustomStringConvertible { @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - internal var base: AGWeakAttribute + internal var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: AGWeakAttribute) { self.base = base } + public init(base: AnyWeakAttribute) { self.base = base } public init() public init(_ attribute: AttributeGraph.Attribute) public init(_ attribute: AttributeGraph.Attribute?) diff --git a/Sources/OpenGraph/Attribute/Attribute/OGAttribute.swift b/Sources/OpenGraph/Attribute/Attribute/AnyAttribute.swift similarity index 77% rename from Sources/OpenGraph/Attribute/Attribute/OGAttribute.swift rename to Sources/OpenGraph/Attribute/Attribute/AnyAttribute.swift index 7fecc848..52d230d7 100644 --- a/Sources/OpenGraph/Attribute/Attribute/OGAttribute.swift +++ b/Sources/OpenGraph/Attribute/Attribute/AnyAttribute.swift @@ -1,5 +1,5 @@ // -// OGAttribute.swift +// AnyAttribute.swift // OpenGraph // // Audited for RELEASE_2021 @@ -7,7 +7,11 @@ import _OpenGraph -extension OGAttribute { +public typealias AnyAttribute = OGAttribute + +extension AnyAttribute { + public typealias Flags = OGAttributeTypeFlags + public init(_ attribute: Attribute) { self = attribute.identifier } @@ -16,12 +20,12 @@ extension OGAttribute { Attribute(identifier: self) } - public static var current: OGAttribute? { + public static var current: AnyAttribute? { let current = __OGGraphGetCurrentAttribute() return current == .nil ? nil : current } - public func unsafeOffset(at offset: Int) -> OGAttribute { + public func unsafeOffset(at offset: Int) -> AnyAttribute { create(offset: offset) } @@ -29,7 +33,7 @@ extension OGAttribute { flags = flags.subtracting(mask).union(newFlags.intersection(mask)) } - public func addInput(_ attribute: OGAttribute, options: OGInputOptions = [], token: Int) { + public func addInput(_ attribute: AnyAttribute, options: OGInputOptions = [], token: Int) { __OGGraphAddInput(self, attribute, options, token) } @@ -44,12 +48,12 @@ extension OGAttribute { } public func mutateBody(as type: Value.Type, invalidating: Bool, _ body: (inout Value) -> Void) { - OGAttribute.mutateAttribute(self, type: OGTypeID(type), invalidating: invalidating) { value in + AnyAttribute.mutateAttribute(self, type: OGTypeID(type), invalidating: invalidating) { value in body(&value.assumingMemoryBound(to: Value.self).pointee) } } - public func breadthFirstSearch(options _: OGSearchOptions = [], _: (OGAttribute) -> Bool) -> Bool { + public func breadthFirstSearch(options _: OGSearchOptions = [], _: (AnyAttribute) -> Bool) -> Bool { fatalError("TODO") } @@ -65,7 +69,7 @@ extension OGAttribute { info.type.pointee.valueTypeID.type } - public var indirectDependency: OGAttribute? { + public var indirectDependency: AnyAttribute? { get { let indirectDependency = _indirectDependency return indirectDependency == .nil ? nil : indirectDependency @@ -78,18 +82,18 @@ extension OGAttribute { // MARK: CustomStringConvertible -extension OGAttribute: Swift.CustomStringConvertible { +extension AnyAttribute: Swift.CustomStringConvertible { @inlinable public var description: String { "#\(rawValue)" } } -public typealias AttributeUpdateBlock = () -> (UnsafeMutableRawPointer, OGAttribute) -> Void +public typealias AttributeUpdateBlock = () -> (UnsafeMutableRawPointer, AnyAttribute) -> Void // FIXME: migrate to use @_extern(c, "xx") in Swift 6 -extension OGAttribute { +extension AnyAttribute { @_silgen_name("OGGraphMutateAttribute") private static func mutateAttribute( - _ attribute: OGAttribute, + _ attribute: AnyAttribute, type: OGTypeID, invalidating: Bool, body: (UnsafeMutableRawPointer) -> Void diff --git a/Sources/OpenGraph/Attribute/Attribute/Attribute.swift b/Sources/OpenGraph/Attribute/Attribute/Attribute.swift index ea7fc434..da7a82a6 100644 --- a/Sources/OpenGraph/Attribute/Attribute/Attribute.swift +++ b/Sources/OpenGraph/Attribute/Attribute/Attribute.swift @@ -4,11 +4,11 @@ import _OpenGraph @propertyWrapper @dynamicMemberLookup public struct Attribute { - public var identifier: OGAttribute + public var identifier: AnyAttribute // MARK: - Initializer - public init(identifier: OGAttribute) { + public init(identifier: AnyAttribute) { self.identifier = identifier } @@ -120,7 +120,7 @@ public struct Attribute { identifier.mutateBody(as: type, invalidating: invalidating, body) } - public func breadthFirstSearch(options: OGSearchOptions = [], _ body: (OGAttribute) -> Bool) -> Bool { + public func breadthFirstSearch(options: OGSearchOptions = [], _ body: (AnyAttribute) -> Bool) -> Bool { identifier.breadthFirstSearch(options: options, body) } @@ -184,7 +184,7 @@ public struct Attribute { // MARK: - Input - public func addInput(_ attribute: OGAttribute, options: OGInputOptions = [], token: Int) { + public func addInput(_ attribute: AnyAttribute, options: OGInputOptions = [], token: Int) { identifier.addInput(attribute, options: options, token: token) } @@ -237,14 +237,14 @@ private struct AttributeType { @_silgen_name("OGGraphCreateAttribute") @inline(__always) @inlinable -func OGGraphCreateAttribute(index: Int, body: UnsafeRawPointer, value: UnsafeRawPointer?) -> OGAttribute +func OGGraphCreateAttribute(index: Int, body: UnsafeRawPointer, value: UnsafeRawPointer?) -> AnyAttribute @_silgen_name("OGGraphGetValue") @inline(__always) @inlinable -func OGGraphGetValue(_ attribute: OGAttribute, options: OGValueOptions = [], type: Value.Type = Value.self) -> OGValue +func OGGraphGetValue(_ attribute: AnyAttribute, options: OGValueOptions = [], type: Value.Type = Value.self) -> OGValue @_silgen_name("OGGraphSetValue") @inline(__always) @inlinable -func OGGraphSetValue(_ attribute: OGAttribute, valuePointer: UnsafePointer) -> Bool +func OGGraphSetValue(_ attribute: AnyAttribute, valuePointer: UnsafePointer) -> Bool diff --git a/Sources/OpenGraph/Attribute/Attribute/External.swift b/Sources/OpenGraph/Attribute/Attribute/External.swift index 2da5fe3b..a889852e 100644 --- a/Sources/OpenGraph/Attribute/Attribute/External.swift +++ b/Sources/OpenGraph/Attribute/Attribute/External.swift @@ -15,7 +15,7 @@ public struct External { extension External: _AttributeBody { public static var comparisonMode: OGComparisonMode { ._3 } public static var flags: OGAttributeTypeFlags { [] } - public static func _update(_: UnsafeMutableRawPointer, attribute _: OGAttribute) {} + public static func _update(_: UnsafeMutableRawPointer, attribute _: AnyAttribute) {} } // MARK: CustomStringConvertible diff --git a/Sources/OpenGraph/Attribute/Indirect/IndirectAttribute.swift b/Sources/OpenGraph/Attribute/Indirect/IndirectAttribute.swift index b32a77ef..d18c1405 100644 --- a/Sources/OpenGraph/Attribute/Indirect/IndirectAttribute.swift +++ b/Sources/OpenGraph/Attribute/Indirect/IndirectAttribute.swift @@ -9,7 +9,7 @@ @propertyWrapper @dynamicMemberLookup public struct IndirectAttribute { - public let identifier: OGAttribute + public let identifier: AnyAttribute public init(source: Attribute) { identifier = source.identifier.createIndirect(size: UInt64(MemoryLayout.size)) @@ -20,7 +20,7 @@ public struct IndirectAttribute { nonmutating set { identifier.source = newValue.identifier } } - public var dependency: OGAttribute? { + public var dependency: AnyAttribute? { get { let dependency = identifier._indirectDependency return dependency == .nil ? nil : dependency diff --git a/Sources/OpenGraph/Attribute/Optional/AnyOptionalAttribute.swift b/Sources/OpenGraph/Attribute/Optional/AnyOptionalAttribute.swift index b710fbac..1d04d7d4 100644 --- a/Sources/OpenGraph/Attribute/Optional/AnyOptionalAttribute.swift +++ b/Sources/OpenGraph/Attribute/Optional/AnyOptionalAttribute.swift @@ -7,21 +7,21 @@ @frozen public struct AnyOptionalAttribute { - public var identifier: OGAttribute + public var identifier: AnyAttribute public init() { identifier = .nil } - public init(_ attribute: OGAttribute) { + public init(_ attribute: AnyAttribute) { identifier = attribute } - public init(_ attribute: OGAttribute?) { + public init(_ attribute: AnyAttribute?) { identifier = attribute ?? .nil } - init(_ weakAttribute: OGWeakAttribute) { + init(_ weakAttribute: AnyWeakAttribute) { identifier = __OGWeakAttributeGetAttribute(weakAttribute) } @@ -33,12 +33,12 @@ public struct AnyOptionalAttribute { AnyOptionalAttribute(__OGGraphGetCurrentAttribute()) } - public var attribute: OGAttribute? { + public var attribute: AnyAttribute? { get { identifier == .nil ? nil : identifier } set { identifier = newValue ?? .nil } } - public func map(_ body: (OGAttribute) -> Value) -> Value? { + public func map(_ body: (AnyAttribute) -> Value) -> Value? { if let attribute { body(attribute) } else { nil } } diff --git a/Sources/OpenGraph/Attribute/Rule/AnyRuleContext.swift b/Sources/OpenGraph/Attribute/Rule/AnyRuleContext.swift index b5703a44..643b7411 100644 --- a/Sources/OpenGraph/Attribute/Rule/AnyRuleContext.swift +++ b/Sources/OpenGraph/Attribute/Rule/AnyRuleContext.swift @@ -9,9 +9,9 @@ import _OpenGraph @frozen public struct AnyRuleContext { - public var attribute: OGAttribute + public var attribute: AnyAttribute - public init(attribute: OGAttribute) { + public init(attribute: AnyAttribute) { self.attribute = attribute } diff --git a/Sources/OpenGraph/Attribute/Rule/Rule.swift b/Sources/OpenGraph/Attribute/Rule/Rule.swift index 00d7a9f3..54e73e0f 100644 --- a/Sources/OpenGraph/Attribute/Rule/Rule.swift +++ b/Sources/OpenGraph/Attribute/Rule/Rule.swift @@ -18,7 +18,7 @@ public protocol Rule: _AttributeBody { extension Rule { public static var initialValue: Value? { nil } - public static func _update(_ pointer: UnsafeMutableRawPointer, attribute _: OGAttribute) { + public static func _update(_ pointer: UnsafeMutableRawPointer, attribute _: AnyAttribute) { let rule = pointer.assumingMemoryBound(to: Self.self) let value = rule.pointee.value // Verified for RELEASE_2023 @@ -42,7 +42,7 @@ extension Rule { extension Rule { public var attribute: Attribute { - Attribute(identifier: OGAttribute.current!) + Attribute(identifier: AnyAttribute.current!) } public var context: RuleContext { @@ -55,7 +55,7 @@ extension Rule { extension Rule where Self: Hashable { public func cachedValue( options: OGCachedValueOptions = [], - owner: OGAttribute? + owner: AnyAttribute? ) -> Value { withUnsafePointer(to: self) { pointer in Self._cachedValue( @@ -70,7 +70,7 @@ extension Rule where Self: Hashable { public func cachedValueIfExists( options: OGCachedValueOptions = [], - owner: OGAttribute? + owner: AnyAttribute? ) -> Value? { withUnsafePointer(to: self) { bodyPointer in let value = __OGGraphReadCachedAttributeIfExists(hashValue, OGTypeID(Self.self), bodyPointer, OGTypeID(Value.self), options, owner ?? .nil, false) @@ -81,7 +81,7 @@ extension Rule where Self: Hashable { public static func _cachedValue( options: OGCachedValueOptions = [], - owner: OGAttribute?, + owner: AnyAttribute?, hashValue: Int, bodyPtr: UnsafeRawPointer, update: AttributeUpdateBlock diff --git a/Sources/OpenGraph/Attribute/Rule/RuleContext.swift b/Sources/OpenGraph/Attribute/Rule/RuleContext.swift index bb80a660..1c86229b 100644 --- a/Sources/OpenGraph/Attribute/Rule/RuleContext.swift +++ b/Sources/OpenGraph/Attribute/Rule/RuleContext.swift @@ -81,9 +81,9 @@ public struct RuleContext { @_silgen_name("OGGraphGetInputValue") @inline(__always) @inlinable -func OGGraphGetInputValue(_ attribute: OGAttribute, input: OGAttribute, options: OGValueOptions = [], type: Value.Type = Value.self) -> OGValue +func OGGraphGetInputValue(_ attribute: AnyAttribute, input: AnyAttribute, options: OGValueOptions = [], type: Value.Type = Value.self) -> OGValue @_silgen_name("OGGraphWithUpdate") @inline(__always) @inlinable -func OGGraphWithUpdate(_ attribute: OGAttribute, body: () -> Void) +func OGGraphWithUpdate(_ attribute: AnyAttribute, body: () -> Void) diff --git a/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift b/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift index fbaabf7f..c6e2361a 100644 --- a/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift +++ b/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift @@ -18,7 +18,7 @@ public protocol StatefulRule: _AttributeBody { extension StatefulRule { public static var initialValue: Value? { nil } - public static func _update(_ pointer: UnsafeMutableRawPointer, attribute _: OGAttribute) { + public static func _update(_ pointer: UnsafeMutableRawPointer, attribute _: AnyAttribute) { pointer.assumingMemoryBound(to: Self.self) .pointee .updateValue() @@ -38,7 +38,7 @@ extension StatefulRule { extension StatefulRule { public var attribute: Attribute { - Attribute(identifier: OGAttribute.current!) + Attribute(identifier: AnyAttribute.current!) } public var context: RuleContext { diff --git a/Sources/OpenGraph/Attribute/Weak/OGWeakAttribute.swift b/Sources/OpenGraph/Attribute/Weak/AnyWeakAttribute.swift similarity index 72% rename from Sources/OpenGraph/Attribute/Weak/OGWeakAttribute.swift rename to Sources/OpenGraph/Attribute/Weak/AnyWeakAttribute.swift index 3073da7e..c58d7e4e 100644 --- a/Sources/OpenGraph/Attribute/Weak/OGWeakAttribute.swift +++ b/Sources/OpenGraph/Attribute/Weak/AnyWeakAttribute.swift @@ -1,5 +1,5 @@ // -// OGWeakAttribute.swift +// AnyWeakAttribute.swift // OpenGraph // // Audited for RELEASE_2021 @@ -7,9 +7,11 @@ import _OpenGraph -extension OGWeakAttribute { +public typealias AnyWeakAttribute = OGWeakAttribute + +extension AnyWeakAttribute { @_alwaysEmitIntoClient - public init(_ attribute: OGAttribute?) { + public init(_ attribute: AnyAttribute?) { self = __OGCreateWeakAttribute(attribute ?? .nil) } @@ -24,20 +26,20 @@ extension OGWeakAttribute { } @_alwaysEmitIntoClient - public var attribute: OGAttribute? { + public var attribute: AnyAttribute? { get { let attribute = __OGWeakAttributeGetAttribute(self) return attribute == .nil ? nil : attribute } set { - self = OGWeakAttribute(newValue) + self = AnyWeakAttribute(newValue) } } } -extension OGWeakAttribute: Swift.Hashable { +extension AnyWeakAttribute: Swift.Hashable { @_alwaysEmitIntoClient - public static func == (lhs: OGWeakAttribute, rhs: OGWeakAttribute) -> Bool { + public static func == (lhs: AnyWeakAttribute, rhs: AnyWeakAttribute) -> Bool { lhs.raw_attribute == rhs.raw_attribute && lhs.subgraph_id == rhs.subgraph_id } @@ -53,7 +55,7 @@ extension OGWeakAttribute: Swift.Hashable { } } -extension OGWeakAttribute: Swift.CustomStringConvertible { +extension AnyWeakAttribute: Swift.CustomStringConvertible { @_alwaysEmitIntoClient public var description: String { attribute?.description ?? "nil" } } diff --git a/Sources/OpenGraph/Attribute/Weak/WeakAttribute.swift b/Sources/OpenGraph/Attribute/Weak/WeakAttribute.swift index 7ced3fd4..e08fdaa4 100644 --- a/Sources/OpenGraph/Attribute/Weak/WeakAttribute.swift +++ b/Sources/OpenGraph/Attribute/Weak/WeakAttribute.swift @@ -12,23 +12,23 @@ import _OpenGraph @dynamicMemberLookup public struct WeakAttribute { @usableFromInline - var base: OGWeakAttribute + var base: AnyWeakAttribute @_alwaysEmitIntoClient - public init(base: OGWeakAttribute) { + public init(base: AnyWeakAttribute) { self.base = base } public init() { - base = OGWeakAttribute(raw_attribute: OGAttribute(rawValue: 0), subgraph_id: 0) + base = AnyWeakAttribute(raw_attribute: AnyAttribute(rawValue: 0), subgraph_id: 0) } public init(_ attribute: Attribute) { - base = OGWeakAttribute(attribute.identifier) + base = AnyWeakAttribute(attribute.identifier) } public init(_ attribute: Attribute?) { - base = OGWeakAttribute(attribute?.identifier) + base = AnyWeakAttribute(attribute?.identifier) } public var wrappedValue: Value? { value } diff --git a/Sources/OpenGraph/Graph/OGGraph.swift b/Sources/OpenGraph/Graph/OGGraph.swift index 6f56351d..c7b8d21e 100644 --- a/Sources/OpenGraph/Graph/OGGraph.swift +++ b/Sources/OpenGraph/Graph/OGGraph.swift @@ -32,14 +32,14 @@ extension OGGraph { // > Also similar to @_silgen_name, but a function declared with @_extern(c) is assumed to use the C ABI, while @_silgen_name assumes the Swift ABI. //extension OGGraph { // @_silgen_name("OGGGraphSetInvalidationCallback") // Use Swift ABI(self: x20) ❌, we need C ABI here(self: x0). -// public func setInvalidationCallback(_ callback: ((OGAttribute) -> Void)?) +// public func setInvalidationCallback(_ callback: ((AnyAttribute) -> Void)?) // // @_silgen_name("OGGGraphSetUpdateCallback") // public func setUpdateCallback(_ callback: (() -> Void)?) //} extension OGGraph { @_silgen_name("OGGraphSetInvalidationCallback") - public static func setInvalidationCallback(_ graph: OGGraph, callback: ((OGAttribute) -> Void)?) + public static func setInvalidationCallback(_ graph: OGGraph, callback: ((AnyAttribute) -> Void)?) @_silgen_name("OGGraphSetUpdateCallback") public static func setUpdateCallback(_ graph: OGGraph, callback: (() -> Void)?) diff --git a/Sources/OpenGraph/Graph/OGSubgraph.swift b/Sources/OpenGraph/Graph/OGSubgraph.swift index 36deccdb..0d04315b 100644 --- a/Sources/OpenGraph/Graph/OGSubgraph.swift +++ b/Sources/OpenGraph/Graph/OGSubgraph.swift @@ -27,7 +27,7 @@ extension OGSubgraph { #endif } - public func forEach(_ flags: OGAttributeFlags, _ callback: (OGAttribute) -> Void) { + public func forEach(_ flags: OGAttributeFlags, _ callback: (AnyAttribute) -> Void) { OGSubgraph.apply(self, flags: flags, callback: callback) } } @@ -55,7 +55,7 @@ extension OGSubgraph { // FIXME: migrate to use @_extern(c, "xx") in Swift 6 extension OGSubgraph { @_silgen_name("OGSubgraphApply") - private static func apply(_ graph: OGSubgraph, flags: OGAttributeFlags, callback: (OGAttribute) -> Void) + private static func apply(_ graph: OGSubgraph, flags: OGAttributeFlags, callback: (AnyAttribute) -> Void) @_silgen_name("OGSubgraphAddObserver") private static func addObserver(_ graph: OGSubgraph, observer: () -> Void) -> Int diff --git a/Sources/OpenGraphShims/GraphShims.swift b/Sources/OpenGraphShims/GraphShims.swift index b6f4c7ea..887a24b2 100644 --- a/Sources/OpenGraphShims/GraphShims.swift +++ b/Sources/OpenGraphShims/GraphShims.swift @@ -3,7 +3,6 @@ #if OPENGRAPH_ATTRIBUTEGRAPH @_exported import AttributeGraph -public typealias OGAttribute = AGAttribute public typealias OGAttributeFlags = AGAttributeFlags public typealias OGAttributeInfo = AGAttributeInfo public typealias OGAttributeType = AGAttributeType @@ -28,7 +27,6 @@ public typealias OGUniqueID = AGUniqueID public typealias OGValue = AGValue public typealias OGValueOptions = AGValueOptions public typealias OGValueState = AGValueState -public typealias OGWeakAttribute = AGWeakAttribute public let attributeGraphEnabled = true #else @_exported import OpenGraph diff --git a/Tests/OpenGraphCompatibilityTests/Attribute/Attribute/OGAttributeTests.swift b/Tests/OpenGraphCompatibilityTests/Attribute/Attribute/AnyAttributeTests.swift similarity index 84% rename from Tests/OpenGraphCompatibilityTests/Attribute/Attribute/OGAttributeTests.swift rename to Tests/OpenGraphCompatibilityTests/Attribute/Attribute/AnyAttributeTests.swift index 353b3db6..b1310b16 100644 --- a/Tests/OpenGraphCompatibilityTests/Attribute/Attribute/OGAttributeTests.swift +++ b/Tests/OpenGraphCompatibilityTests/Attribute/Attribute/AnyAttributeTests.swift @@ -1,8 +1,6 @@ // -// OGAttributeTests.swift -// -// -// +// AnyAttributeTests.swift +// OpenGraphCompatibilityTests import Testing @@ -11,25 +9,25 @@ import Testing // Report to upstream for investigation when we bump to 5.10 #if canImport(Darwin) @Suite(.disabled(if: !compatibilityTestEnabled, "Attribute is not implemented")) -final class OGAttributeTests: AttributeTestBase { +final class AnyAttributeTests: AttributeTestBase { @Test func constantValue() throws { - let attributeNil = OGAttribute.nil + let attributeNil = AnyAttribute.nil #expect(attributeNil.rawValue == 2) } // FIXME: Strange compile issue on non-ObjectiveC platform // Cannot look up associated type for imported conformance: - // (struct_type decl=_OpenGraph.(file).OGAttribute) + // (struct_type decl=_OpenGraph.(file).AnyAttribute) // (associated_type_decl "_ObjectiveCType" access=public overridden=) // Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace. #if canImport(ObjectiveC) @Test func description() throws { - let attribute = OGAttribute(rawValue: 0) + let attribute = AnyAttribute(rawValue: 0) #expect(attribute.description == "#0") - let attributeNil = OGAttribute.nil + let attributeNil = AnyAttribute.nil #expect(attributeNil.description == "#2") } @@ -39,15 +37,15 @@ final class OGAttributeTests: AttributeTestBase { // The value will not be nil if we run this test case seperately. // The value will be nil if we run the whole CompatibilityTests. // We need more knowledge to write the test case here. - // #expect(OGAttribute.current != nil) + // #expect(AnyAttribute.current != nil) } else { - #expect(OGAttribute.current == nil) + #expect(AnyAttribute.current == nil) } } @Test func setFlags() throws { - let attribute = OGAttribute(Attribute(value: 0)) + let attribute = AnyAttribute(Attribute(value: 0)) #expect(attribute.flags == []) // Test mask = [] @@ -91,7 +89,7 @@ final class OGAttributeTests: AttributeTestBase { await withKnownIssue("Fetch Confirmation value from the body pointer") { await confirmation("Visit Body", expectedCount: 1) { confirm in - let attribute = OGAttribute(Attribute(value: confirm)) + let attribute = AnyAttribute(Attribute(value: confirm)) var visitor = Visitor() attribute.visitBody(&visitor) } diff --git a/Tests/OpenGraphCompatibilityTests/Attribute/Optional/AnyOptionalAttributeTests.swift b/Tests/OpenGraphCompatibilityTests/Attribute/Optional/AnyOptionalAttributeTests.swift index b451310c..599f493e 100644 --- a/Tests/OpenGraphCompatibilityTests/Attribute/Optional/AnyOptionalAttributeTests.swift +++ b/Tests/OpenGraphCompatibilityTests/Attribute/Optional/AnyOptionalAttributeTests.swift @@ -15,7 +15,7 @@ final class AnyOptionalAttributeTests: AttributeTestBase { let o1 = AnyOptionalAttribute() #expect(o1.identifier == .nil) - let attr = OGAttribute(rawValue: 0x1) + let attr = AnyAttribute(rawValue: 0x1) let o2 = AnyOptionalAttribute(attr) #expect(o2.identifier == attr) @@ -28,7 +28,7 @@ final class AnyOptionalAttributeTests: AttributeTestBase { let o1 = AnyOptionalAttribute() #expect(o1.attribute == nil) - let attr = OGAttribute(rawValue: 0x1) + let attr = AnyAttribute(rawValue: 0x1) let o2 = AnyOptionalAttribute(attr) #expect(o2.attribute != nil) } @@ -44,7 +44,7 @@ final class AnyOptionalAttributeTests: AttributeTestBase { let o1 = AnyOptionalAttribute() #expect(o1.description == "nil") - let attr = OGAttribute(rawValue: 0x1) + let attr = AnyAttribute(rawValue: 0x1) let o2 = AnyOptionalAttribute(attr) #expect(o2.description == "#1") } diff --git a/Tests/OpenGraphCompatibilityTests/Attribute/Optional/OptionalAttributeTests.swift b/Tests/OpenGraphCompatibilityTests/Attribute/Optional/OptionalAttributeTests.swift index 6cb9a30f..81ea2f82 100644 --- a/Tests/OpenGraphCompatibilityTests/Attribute/Optional/OptionalAttributeTests.swift +++ b/Tests/OpenGraphCompatibilityTests/Attribute/Optional/OptionalAttributeTests.swift @@ -37,7 +37,7 @@ final class OptionalAttributeTests: AttributeTestBase { let o1 = OptionalAttribute() #expect(o1.description == "nil") - let attr = OGAttribute(rawValue: 0x1) + let attr = AnyAttribute(rawValue: 0x1) let o2 = OptionalAttribute(Attribute(identifier: attr)) #expect(o2.description == "#1") } diff --git a/Tests/OpenGraphCompatibilityTests/Attribute/Weak/OGWeakAttributeTests.swift b/Tests/OpenGraphCompatibilityTests/Attribute/Weak/OGWeakAttributeTests.swift index 3ea9851e..c19cf81d 100644 --- a/Tests/OpenGraphCompatibilityTests/Attribute/Weak/OGWeakAttributeTests.swift +++ b/Tests/OpenGraphCompatibilityTests/Attribute/Weak/OGWeakAttributeTests.swift @@ -1,5 +1,5 @@ // -// OGWeakAttributeTests.swift +// AnyWeakAttributeTests.swift // // // Created by Kyle on 2024/3/4. @@ -8,11 +8,11 @@ import Testing #if canImport(Darwin) -final class OGWeakAttributeTests: AttributeTestBase { +final class AnyWeakAttributeTests: AttributeTestBase { @Test func basic() { - let w1 = OGWeakAttribute(nil) - let w2 = OGWeakAttribute(WeakAttribute(nil)) + let w1 = AnyWeakAttribute(nil) + let w2 = AnyWeakAttribute(WeakAttribute(nil)) #expect(w1.attribute == nil) #expect(w2.attribute == nil) #expect(w2.unsafeCast(to: Void.self) == WeakAttribute(base: w2)) @@ -20,8 +20,8 @@ final class OGWeakAttributeTests: AttributeTestBase { @Test func hashable() { - let w1 = OGWeakAttribute(nil) - let w2 = OGWeakAttribute(WeakAttribute(nil)) + let w1 = AnyWeakAttribute(nil) + let w2 = AnyWeakAttribute(WeakAttribute(nil)) #expect(w1 == w2) _ = w1.hashValue } @@ -30,9 +30,9 @@ final class OGWeakAttributeTests: AttributeTestBase { func description() { let attr = Attribute(value: 1) if compatibilityTestEnabled { - #expect(OGWeakAttribute(attr.identifier).description != "nil") + #expect(AnyWeakAttribute(attr.identifier).description != "nil") } - #expect(OGWeakAttribute(nil).description == "nil") + #expect(AnyWeakAttribute(nil).description == "nil") } } #endif diff --git a/Tests/OpenGraphCompatibilityTests/GraphShims.swift b/Tests/OpenGraphCompatibilityTests/GraphShims.swift index 43060560..2cdf5fd7 100644 --- a/Tests/OpenGraphCompatibilityTests/GraphShims.swift +++ b/Tests/OpenGraphCompatibilityTests/GraphShims.swift @@ -6,7 +6,6 @@ #if OPENGRAPH_COMPATIBILITY_TEST @_exported import AttributeGraph -public typealias OGAttribute = AGAttribute public typealias OGAttributeFlags = AGAttributeFlags public typealias OGAttributeInfo = AGAttributeInfo public typealias OGAttributeType = AGAttributeType @@ -31,7 +30,6 @@ public typealias OGUniqueID = AGUniqueID public typealias OGValue = AGValue public typealias OGValueOptions = AGValueOptions public typealias OGValueState = AGValueState -public typealias OGWeakAttribute = AGWeakAttribute let compatibilityTestEnabled = true #else @_exported import OpenGraph