diff --git a/Sources/OpenSwiftUICore/Data/Preference/PreferencesInputs.swift b/Sources/OpenSwiftUICore/Data/Preference/PreferencesInputs.swift index 4708b996a..3db33e40c 100644 --- a/Sources/OpenSwiftUICore/Data/Preference/PreferencesInputs.swift +++ b/Sources/OpenSwiftUICore/Data/Preference/PreferencesInputs.swift @@ -42,23 +42,14 @@ package struct PreferencesInputs { } package func makeIndirectOutputs() -> PreferencesOutputs { - struct AddPreference: PreferenceKeyVisitor { - var outputs: PreferencesOutputs - - mutating func visit(key: K.Type) where K: PreferenceKey { - let source = ViewGraph.current.intern(K.defaultValue, for: K.self, id: .preferenceKeyDefault) - - @IndirectAttribute(source: source) - var indirect: K.Value - - outputs.appendPreference(key: K.self, value: $indirect) - } - } - - var visitor = AddPreference(outputs: PreferencesOutputs()) + var outputs = PreferencesOutputs() for key in keys { - key.visitKey(&visitor) + func project(_ key: K.Type) where K: PreferenceKey { + let source = ViewGraph.current.intern(key.defaultValue, id: .preferenceKeyDefault) + outputs.appendPreference(key: key, value: IndirectAttribute(source: source).projectedValue) + } + project(key) } - return visitor.outputs + return outputs } } diff --git a/Sources/OpenSwiftUICore/Data/Preference/View_Indirect.swift b/Sources/OpenSwiftUICore/Data/Preference/View_Indirect.swift index 9ae4eb759..b1229e0d6 100644 --- a/Sources/OpenSwiftUICore/Data/Preference/View_Indirect.swift +++ b/Sources/OpenSwiftUICore/Data/Preference/View_Indirect.swift @@ -12,7 +12,7 @@ import OpenGraphShims #endif extension _ViewInputs { - func makeIndirectOutputs() -> _ViewOutputs { + package func makeIndirectOutputs() -> _ViewOutputs { let indirectPreferenceOutputs = preferences.makeIndirectOutputs() var outputs = _ViewOutputs() outputs.preferences = indirectPreferenceOutputs diff --git a/Sources/OpenSwiftUICore/Event/Gesture/Gesture.swift b/Sources/OpenSwiftUICore/Event/Gesture/Gesture.swift index 1ec5e76b9..f23bed73c 100644 --- a/Sources/OpenSwiftUICore/Event/Gesture/Gesture.swift +++ b/Sources/OpenSwiftUICore/Event/Gesture/Gesture.swift @@ -2,12 +2,9 @@ // Gesture.swift // OpenSwiftUICore // -// Status: WIP +// Status: Complete // ID: 5DF390A778F4D193C5F92C06542566B0 (SwiftUICore) -package import OpenGraphShims -import OpenSwiftUI_SPI - // MARK: - Gesture [6.5.4] /// An instance that matches a sequence of events to a gesture, and returns a @@ -103,272 +100,3 @@ extension Gesture where Value == Body.Value { return Body.makeDebuggableGesture(gesture: body, inputs: inputs) } } - -// MARK: - GestureInputs [6.5.4] [WIP] - -/// Input (aka inherited) attributes for gesture objects. -@available(OpenSwiftUI_v1_0, *) -public struct _GestureInputs { - package var viewInputs: _ViewInputs - - package var viewSubgraph: Subgraph - - package var preferences: PreferencesInputs - - package var events: Attribute<[EventID : any EventType]> - - package var resetSeed: Attribute - - @_spi(ForOpenSwiftUIOnly) - public struct InheritedPhase: OptionSet, Defaultable { - public let rawValue: Int - - public init(rawValue: Int) { - self.rawValue = rawValue - } - - package static let failed: _GestureInputs.InheritedPhase = .init(rawValue: 1 << 0) - - package static let active: _GestureInputs.InheritedPhase = .init(rawValue: 1 << 1) - - package static let defaultValue: _GestureInputs.InheritedPhase = .failed - } - - package var inheritedPhase: Attribute<_GestureInputs.InheritedPhase> - - package var failedPhase: Attribute> { - get { preconditionFailure("TODO") } - } - - package var options: _GestureInputs.Options - - package var platformInputs: PlatformGestureInputs - - package init( - _ inputs: _ViewInputs, - viewSubgraph: Subgraph, - events: Attribute<[EventID : any EventType]>, - time: Attribute