From e73aee7fce9b4c1c7241b1788f2c763ea8d68e0e Mon Sep 17 00:00:00 2001 From: Kyle Date: Sat, 6 Apr 2024 15:37:49 +0800 Subject: [PATCH] Add OGGraph.outputValue API --- .../arm64-apple-ios.swiftinterface | 12 ++++++++++++ .../arm64e-apple-ios.swiftinterface | 12 ++++++++++++ .../arm64-apple-ios-simulator.swiftinterface | 12 ++++++++++++ .../x86_64-apple-ios-simulator.swiftinterface | 12 ++++++++++++ .../arm64-apple-macos.swiftinterface | 12 ++++++++++++ .../arm64e-apple-macos.swiftinterface | 12 ++++++++++++ .../x86_64-apple-macos.swiftinterface | 12 ++++++++++++ .../template.swiftinterface | 12 ++++++++++++ Sources/OpenGraph/Attribute/Rule/Rule.swift | 18 ++++-------------- .../OpenGraph/Attribute/Rule/RuleContext.swift | 8 ++++---- .../Attribute/Rule/StatefulRule.swift | 6 +++--- Sources/OpenGraph/Graph/OGGraph.swift | 13 +++++++++++++ 12 files changed, 120 insertions(+), 21 deletions(-) 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 237a4b8e..e66a0f53 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 237a4b8e..e66a0f53 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 74370c42..77913eef 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 4f6d7679..ce1bfa9c 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 cd2ba5ad..b99ab548 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 9882c783..dabd5513 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { 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 421ef0ba..c5054ded 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 @@ -398,6 +398,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { diff --git a/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface b/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface index f8673971..7a7d0caf 100644 --- a/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface +++ b/AG/Sources/Modules/AttributeGraph.swiftmodule/template.swiftinterface @@ -394,6 +394,18 @@ extension AttributeGraph.AGGraph { public static func withoutUpdate(_ body: () -> Value) -> Value } +extension AttributeGraph.AGGraph { + @_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) +} + // MARK: - AGSubgraph extension AttributeGraph.AGSubgraph { diff --git a/Sources/OpenGraph/Attribute/Rule/Rule.swift b/Sources/OpenGraph/Attribute/Rule/Rule.swift index 3381b0cc..00d7a9f3 100644 --- a/Sources/OpenGraph/Attribute/Rule/Rule.swift +++ b/Sources/OpenGraph/Attribute/Rule/Rule.swift @@ -22,8 +22,8 @@ extension Rule { let rule = pointer.assumingMemoryBound(to: Self.self) let value = rule.pointee.value // Verified for RELEASE_2023 - withUnsafePointer(to: value) { valuePointer in - OGGraphSetOutputValue(valuePointer) + withUnsafePointer(to: value) { value in + OGGraph.setOutputValue(value) } } @@ -32,8 +32,8 @@ extension Rule { return } // Verified for RELEASE_2023 - withUnsafePointer(to: initialValue) { valuePointer in - OGGraphSetOutputValue(valuePointer) + withUnsafePointer(to: initialValue) { value in + OGGraph.setOutputValue(value) } } } @@ -91,13 +91,3 @@ extension Rule where Self: Hashable { .assumingMemoryBound(to: Value.self) } } - -@_silgen_name("OGGraphGetOutputValue") -@inline(__always) -@inlinable -func OGGraphGetOutputValue() -> UnsafePointer? - -@_silgen_name("OGGraphSetOutputValue") -@inline(__always) -@inlinable -func OGGraphSetOutputValue(_ valuePointer: UnsafePointer) diff --git a/Sources/OpenGraph/Attribute/Rule/RuleContext.swift b/Sources/OpenGraph/Attribute/Rule/RuleContext.swift index e47ddf92..bb80a660 100644 --- a/Sources/OpenGraph/Attribute/Rule/RuleContext.swift +++ b/Sources/OpenGraph/Attribute/Rule/RuleContext.swift @@ -43,17 +43,17 @@ public struct RuleContext { public var value: Value { unsafeAddress { - OGGraphGetOutputValue()! + OGGraph.outputValue()! } nonmutating set { - withUnsafePointer(to: newValue) { valuePointer in - OGGraphSetOutputValue(valuePointer) + withUnsafePointer(to: newValue) { value in + OGGraph.setOutputValue(value) } } } public var hasValue: Bool { - let valuePointer: UnsafePointer? = OGGraphGetOutputValue() + let valuePointer: UnsafePointer? = OGGraph.outputValue() return valuePointer != nil } diff --git a/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift b/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift index d83adf1d..fbaabf7f 100644 --- a/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift +++ b/Sources/OpenGraph/Attribute/Rule/StatefulRule.swift @@ -28,8 +28,8 @@ extension StatefulRule { guard let initialValue else { return } - withUnsafePointer(to: initialValue) { valuePointer in - OGGraphSetOutputValue(valuePointer) + withUnsafePointer(to: initialValue) { value in + OGGraph.setOutputValue(value) } } } @@ -46,7 +46,7 @@ extension StatefulRule { } public var value: Value { - unsafeAddress { OGGraphGetOutputValue()! } + unsafeAddress { OGGraph.outputValue()! } nonmutating set { context.value = newValue } } diff --git a/Sources/OpenGraph/Graph/OGGraph.swift b/Sources/OpenGraph/Graph/OGGraph.swift index 3976e0a2..6f56351d 100644 --- a/Sources/OpenGraph/Graph/OGGraph.swift +++ b/Sources/OpenGraph/Graph/OGGraph.swift @@ -58,3 +58,16 @@ extension OGGraph { return body() } } + +extension OGGraph { + // NOTE: Currently Swift does not support generic computed variable + @_silgen_name("OGGraphGetOutputValue") + @inline(__always) + @inlinable + public static func outputValue() -> UnsafePointer? + + @_silgen_name("OGGraphSetOutputValue") + @inline(__always) + @inlinable + public static func setOutputValue(_ value: UnsafePointer) +}