diff --git a/.agents/interfaces/ios/Resettable.swiftinterface b/.agents/interfaces/ios/Resettable.swiftinterface
new file mode 100644
index 0000000..9d86916
--- /dev/null
+++ b/.agents/interfaces/ios/Resettable.swiftinterface
@@ -0,0 +1,296 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)
+// swift-module-flags: -target arm64-apple-ios13.0-simulator -enable-objc-interop -swift-version 6 -O -module-name Resettable -package-name swift_resettable
+// swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.3
+import KeyPathMapping
+import KeyPathsExtensions
+import Swift
+import SwiftMarkerProtocols
+import _Concurrency
+import _StringProcessing
+import _SwiftConcurrencyShims
+extension Resettable.Resettable where Base : Swift.Collection {
+ public var collection: Resettable.Resettable.WritableKeyPathContainer {
+ get
+ }
+}
+extension Resettable.Resettable.WritableKeyPathContainer where Value : Swift.Collection {
+ @discardableResult
+ public func swapAt(_ idx1: Swift.Array.Index, _ idx2: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
+ @discardableResult
+ public func remove(at idx: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
+ @discardableResult
+ public func insert(_ element: Swift.Array.Element, at idx: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
+ @discardableResult
+ public func append(_ element: Swift.Array.Element, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
+}
+extension Resettable.Resettable {
+ public enum OperationBehavior {
+ case `default`
+ case amend
+ case insert
+ case inject
+ @_semantics("derived_enum_equals") @_implements(Swift.Equatable, ==(_:_:)) public static func __derived_enum_equals(_ a: Resettable.Resettable.OperationBehavior, _ b: Resettable.Resettable.OperationBehavior) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
+ get
+ }
+ }
+}
+@propertyWrapper @dynamicMemberLookup public class Resettable {
+ @available(*, deprecated, renamed: "Base")
+ public typealias Object = Base
+ convenience public init(wrappedValue: Base)
+ public init(_ base: Base)
+ @usableFromInline
+ internal var base: Base
+ @inlinable public var wrappedValue: Base {
+ _read { yield base }
+ }
+ @inlinable public var projectedValue: Resettable.Resettable {
+ get { self }
+ }
+ @discardableResult
+ public func undo() -> Resettable.Resettable
+ @discardableResult
+ public func redo() -> Resettable.Resettable
+ @discardableResult
+ @inlinable public func undo(_ count: Swift.Int) -> Resettable.Resettable {
+ for _ in 0.. Resettable.Resettable {
+ for _ in 0.. Resettable.Resettable
+ @discardableResult
+ public func redoAll() -> Resettable.Resettable
+ @discardableResult
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, _ keyPath: Swift.WritableKeyPath, using action: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable
+ @discardableResult
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, _ keyPath: Swift.WritableKeyPath, using action: @escaping (inout Value) -> Swift.Void, undo: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable
+ @discardableResult
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, using action: @escaping (inout Base) -> Swift.Void, undo: @escaping (inout Base) -> Swift.Void) -> Resettable.Resettable
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
+ get {
+ WritableKeyPathContainer(
+ resettable: self,
+ keyPath: keyPath
+ )
+ }
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
+ get {
+ KeyPathContainer(
+ resettable: self,
+ keyPath: keyPath
+ )
+ }
+ }
+ @objc deinit
+}
+extension Resettable.Resettable {
+ @dynamicMemberLookup public struct KeyPathContainer {
+ @usableFromInline
+ internal let resettable: Resettable.Resettable
+ @usableFromInline
+ internal let keyPath: Swift.KeyPath
+ @usableFromInline
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.KeyPath)
+ @inlinable public subscript(dynamicMember keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
+ get {
+ WritableKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
+ get {
+ KeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ }
+ @dynamicMemberLookup public struct WritableKeyPathContainer {
+ @usableFromInline
+ internal let resettable: Resettable.Resettable
+ @usableFromInline
+ internal let keyPath: Swift.WritableKeyPath
+ @usableFromInline
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.WritableKeyPath)
+ @discardableResult
+ @inlinable public func callAsFunction(_ value: Value, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable {
+ return self.callAsFunction(operation) { $0 = value }
+ }
+ @discardableResult
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable {
+ return resettable._modify(
+ operation: operation,
+ keyPath,
+ using: action
+ )
+ }
+ @discardableResult
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift.Void, undo: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable {
+ return resettable._modify(
+ operation: operation,
+ keyPath,
+ using: action,
+ undo: undo
+ )
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
+ get {
+ WritableKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
+ get {
+ KeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ }
+ @dynamicMemberLookup public struct IfLetKeyPathContainer {
+ public typealias Value = Wrapped?
+ @usableFromInline
+ internal let resettable: Resettable.Resettable
+ @usableFromInline
+ internal let keyPath: Swift.KeyPath.IfLetKeyPathContainer.Value>
+ @usableFromInline
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.KeyPath.IfLetKeyPathContainer.Value>)
+ @inlinable public subscript(dynamicMember keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer {
+ get {
+ IfLetWritableKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer {
+ get {
+ IfLetKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ }
+ @dynamicMemberLookup public struct IfLetWritableKeyPathContainer {
+ public typealias Value = Wrapped?
+ @usableFromInline
+ internal let resettable: Resettable.Resettable
+ @usableFromInline
+ internal let keyPath: Swift.WritableKeyPath.IfLetWritableKeyPathContainer.Value>
+ @usableFromInline
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.WritableKeyPath.IfLetWritableKeyPathContainer.Value>)
+ @discardableResult
+ @inlinable public func callAsFunction(_ value: Wrapped, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable {
+ guard resettable.wrappedValue[keyPath: keyPath] != nil else { return resettable }
+ return self.callAsFunction(operation) { $0 = value }
+ }
+ @discardableResult
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift.Void) -> Resettable.Resettable {
+ guard let value = resettable.wrappedValue[keyPath: keyPath] else { return resettable }
+ return resettable._modify(
+ operation: operation,
+ keyPath.unwrapped(with: value),
+ using: action
+ )
+ }
+ @discardableResult
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift.Void, undo: @escaping (inout Wrapped) -> Swift.Void) -> Resettable.Resettable {
+ guard let value = resettable.wrappedValue[keyPath: keyPath] else { return resettable }
+ return resettable._modify(
+ operation: operation,
+ keyPath.unwrapped(with: value),
+ using: action,
+ undo: undo
+ )
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer {
+ get {
+ IfLetWritableKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer {
+ get {
+ IfLetKeyPathContainer(
+ resettable: resettable,
+ keyPath: self.keyPath.appending(path: keyPath)
+ )
+ }
+ }
+ }
+}
+extension Resettable.Resettable where Base : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
+ get
+ }
+}
+extension Resettable.Resettable {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
+}
+extension Resettable.Resettable.WritableKeyPathContainer where Value : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
+ get
+ }
+ public func ifNil(_ value: Value, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable
+}
+extension Resettable.Resettable.KeyPathContainer where Value : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetKeyPathContainer {
+ get
+ }
+}
+extension Resettable.Resettable.IfLetWritableKeyPathContainer where Wrapped : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
+ get
+ }
+}
+extension Resettable.Resettable.IfLetKeyPathContainer where Wrapped : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetKeyPathContainer {
+ get
+ }
+}
+extension Resettable.Resettable.WritableKeyPathContainer {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
+}
+extension Resettable.Resettable.KeyPathContainer {
+ public func ifLet(_ keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
+}
+extension Resettable.Resettable.IfLetWritableKeyPathContainer {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
+}
+extension Resettable.Resettable.IfLetKeyPathContainer {
+ public func ifLet(_ keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
+}
+@usableFromInline
+@discardableResult
+internal func modification(of object: T, with action: (inout T) -> Swift.Void) -> T
+extension Resettable.Resettable : Swift.Identifiable where Base : Swift.Identifiable {
+ @inlinable public var id: Base.ID {
+ get { wrappedValue.id }
+ }
+ public typealias ID = Base.ID
+}
+extension Resettable.Resettable.OperationBehavior : Swift.Equatable {}
+extension Resettable.Resettable.OperationBehavior : Swift.Hashable {}
diff --git a/.agents/interfaces/ios/_ResettableDebugging.swiftinterface b/.agents/interfaces/ios/_ResettableDebugging.swiftinterface
new file mode 100644
index 0000000..06c3a47
--- /dev/null
+++ b/.agents/interfaces/ios/_ResettableDebugging.swiftinterface
@@ -0,0 +1,29 @@
+// swift-interface-format-version: 1.0
+// swift-compiler-version: Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)
+// swift-module-flags: -target arm64-apple-ios13.0-simulator -enable-objc-interop -swift-version 6 -O -module-name _ResettableDebugging -package-name swift_resettable
+// swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.3
+import CustomDump
+@_exported import Resettable
+import Swift
+import _Concurrency
+import _StringProcessing
+import _SwiftConcurrencyShims
+extension Resettable.Resettable {
+ @available(*, deprecated, message: "Might be removed due to lack of Value type constraint, which makes the behavior unstable, consider re-implementing this feature locally if needed")
+ public struct ValuesDump {
+ @usableFromInline
+ internal init(items: [Resettable.Resettable.Object], currentIndex: Swift.Int)
+ public let items: [Resettable.Resettable.Object]
+ public let currentIndex: Swift.Int
+ }
+}
+extension Resettable.Resettable {
+ @available(*, deprecated, message: "Might be removed due to lack of Value type constraint, which makes the behavior unstable, consider re-implementing this feature locally if needed")
+ public func valuesDump() -> Resettable.Resettable.ValuesDump
+ @inlinable public func dump() -> Swift.String {
+ var buffer = ""
+ self.dump(to: &buffer)
+ return buffer
+ }
+ public func dump(to stream: inout TargetStream) where TargetStream : Swift.TextOutputStream
+}
diff --git a/.agents/interfaces/macos/Resettable.swiftinterface b/.agents/interfaces/macos/Resettable.swiftinterface
index 3a489b8..d8ee715 100644
--- a/.agents/interfaces/macos/Resettable.swiftinterface
+++ b/.agents/interfaces/macos/Resettable.swiftinterface
@@ -1,7 +1,7 @@
// swift-interface-format-version: 1.0
-// swift-compiler-version: Apple Swift version 6.4 (swiftlang-6.4.0.25.4 clang-2100.3.25.1)
-// swift-module-flags: -target arm64-apple-macos12.0 -enable-objc-interop -language-mode 6 -O -enable-experimental-feature DebugDescriptionMacro -module-name Resettable -package-name swift_resettable
-// swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.4
+// swift-compiler-version: Apple Swift version 6.3.3 (swiftlang-6.3.3.1.3 clang-2100.1.1.101)
+// swift-module-flags: -target arm64-apple-macosx10.15 -enable-objc-interop -swift-version 6 -O -module-name Resettable -package-name swift_resettable
+// swift-module-flags-ignorable: -formal-cxx-interoperability-mode=off -interface-compiler-version 6.3.3
import KeyPathMapping
import KeyPathsExtensions
import Swift
@@ -9,30 +9,30 @@ import SwiftMarkerProtocols
import _Concurrency
import _StringProcessing
import _SwiftConcurrencyShims
-extension Resettable::Resettable where Base : Swift::Collection {
- public var collection: Resettable::Resettable.Resettable::WritableKeyPathContainer {
+extension Resettable.Resettable where Base : Swift.Collection {
+ public var collection: Resettable.Resettable.WritableKeyPathContainer {
get
}
}
-extension Resettable::Resettable.Resettable::WritableKeyPathContainer where Value : Swift::Collection {
+extension Resettable.Resettable.WritableKeyPathContainer where Value : Swift.Collection {
@discardableResult
- public func swapAt(_ idx1: Swift::Array.Swift::Index, _ idx2: Swift::Array.Swift::Index, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable where Value == [T]
+ public func swapAt(_ idx1: Swift.Array.Index, _ idx2: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
@discardableResult
- public func remove(at idx: Swift::Array.Swift::Index, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable where Value == [T]
+ public func remove(at idx: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
@discardableResult
- public func insert(_ element: Swift::Array.Swift::Element, at idx: Swift::Array.Swift::Index, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable where Value == [T]
+ public func insert(_ element: Swift.Array.Element, at idx: Swift.Array.Index, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
@discardableResult
- public func append(_ element: Swift::Array.Swift::Element, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable where Value == [T]
+ public func append(_ element: Swift.Array.Element, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable where Value == [T]
}
-extension Resettable::Resettable {
+extension Resettable.Resettable {
public enum OperationBehavior {
case `default`
case amend
case insert
case inject
- @_semantics("derived_enum_equals") @_implements(Swift::Equatable, ==(_:_:)) public static func __derived_enum_equals(_ a: Resettable::Resettable.Resettable::OperationBehavior, _ b: Resettable::Resettable.Resettable::OperationBehavior) -> Swift::Bool
- public func hash(into hasher: inout Swift::Hasher)
- public var hashValue: Swift::Int {
+ @_semantics("derived_enum_equals") @_implements(Swift.Equatable, ==(_:_:)) public static func __derived_enum_equals(_ a: Resettable.Resettable.OperationBehavior, _ b: Resettable.Resettable.OperationBehavior) -> Swift.Bool
+ public func hash(into hasher: inout Swift.Hasher)
+ public var hashValue: Swift.Int {
get
}
}
@@ -47,34 +47,34 @@ extension Resettable::Resettable {
@inlinable public var wrappedValue: Base {
_read { yield base }
}
- @inlinable public var projectedValue: Resettable::Resettable {
+ @inlinable public var projectedValue: Resettable.Resettable {
get { self }
}
@discardableResult
- public func undo() -> Resettable::Resettable
+ public func undo() -> Resettable.Resettable
@discardableResult
- public func redo() -> Resettable::Resettable
+ public func redo() -> Resettable.Resettable
@discardableResult
- @inlinable public func undo(_ count: Swift::Int) -> Resettable::Resettable {
+ @inlinable public func undo(_ count: Swift.Int) -> Resettable.Resettable {
for _ in 0.. Resettable::Resettable {
+ @inlinable public func redo(_ count: Swift.Int) -> Resettable.Resettable {
for _ in 0.. Resettable::Resettable
+ public func undoAll() -> Resettable.Resettable
@discardableResult
- public func redoAll() -> Resettable::Resettable
+ public func redoAll() -> Resettable.Resettable
@discardableResult
- public func _modify(operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ keyPath: Swift::WritableKeyPath, using action: @escaping (inout Value) -> Swift::Void) -> Resettable::Resettable
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, _ keyPath: Swift.WritableKeyPath, using action: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable
@discardableResult
- public func _modify(operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ keyPath: Swift::WritableKeyPath, using action: @escaping (inout Value) -> Swift::Void, undo: @escaping (inout Value) -> Swift::Void) -> Resettable::Resettable
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, _ keyPath: Swift.WritableKeyPath, using action: @escaping (inout Value) -> Swift.Void, undo: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable
@discardableResult
- public func _modify(operation: Resettable::Resettable.Resettable::OperationBehavior = .default, using action: @escaping (inout Base) -> Swift::Void, undo: @escaping (inout Base) -> Swift::Void) -> Resettable::Resettable
- @inlinable public subscript(dynamicMember keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::WritableKeyPathContainer {
+ public func _modify(operation: Resettable.Resettable.OperationBehavior = .default, using action: @escaping (inout Base) -> Swift.Void, undo: @escaping (inout Base) -> Swift.Void) -> Resettable.Resettable
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
get {
WritableKeyPathContainer(
resettable: self,
@@ -82,7 +82,7 @@ extension Resettable::Resettable {
)
}
}
- @inlinable public subscript(dynamicMember keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::KeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
get {
KeyPathContainer(
resettable: self,
@@ -92,15 +92,15 @@ extension Resettable::Resettable {
}
@objc deinit
}
-extension Resettable::Resettable {
+extension Resettable.Resettable {
@dynamicMemberLookup public struct KeyPathContainer {
@usableFromInline
- internal let resettable: Resettable::Resettable
+ internal let resettable: Resettable.Resettable
@usableFromInline
- internal let keyPath: Swift::KeyPath
+ internal let keyPath: Swift.KeyPath
@usableFromInline
- internal init(resettable: Resettable::Resettable, keyPath: Swift::KeyPath)
- @inlinable public subscript(dynamicMember keyPath: Swift::ReferenceWritableKeyPath) -> Resettable::Resettable.Resettable::WritableKeyPathContainer {
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.KeyPath)
+ @inlinable public subscript(dynamicMember keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
get {
WritableKeyPathContainer(
resettable: resettable,
@@ -108,7 +108,7 @@ extension Resettable::Resettable {
)
}
}
- @inlinable public subscript(dynamicMember keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::KeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
get {
KeyPathContainer(
resettable: resettable,
@@ -119,17 +119,17 @@ extension Resettable::Resettable {
}
@dynamicMemberLookup public struct WritableKeyPathContainer {
@usableFromInline
- internal let resettable: Resettable::Resettable
+ internal let resettable: Resettable.Resettable
@usableFromInline
- internal let keyPath: Swift::WritableKeyPath
+ internal let keyPath: Swift.WritableKeyPath
@usableFromInline
- internal init(resettable: Resettable::Resettable, keyPath: Swift::WritableKeyPath)
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.WritableKeyPath)
@discardableResult
- @inlinable public func callAsFunction(_ value: Value, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ value: Value, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable {
return self.callAsFunction(operation) { $0 = value }
}
@discardableResult
- @inlinable public func callAsFunction(_ operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift::Void) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable {
return resettable._modify(
operation: operation,
keyPath,
@@ -137,7 +137,7 @@ extension Resettable::Resettable {
)
}
@discardableResult
- @inlinable public func callAsFunction(_ operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift::Void, undo: @escaping (inout Value) -> Swift::Void) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Value) -> Swift.Void, undo: @escaping (inout Value) -> Swift.Void) -> Resettable.Resettable {
return resettable._modify(
operation: operation,
keyPath,
@@ -145,7 +145,7 @@ extension Resettable::Resettable {
undo: undo
)
}
- @inlinable public subscript(dynamicMember keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::WritableKeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.WritableKeyPathContainer {
get {
WritableKeyPathContainer(
resettable: resettable,
@@ -153,7 +153,7 @@ extension Resettable::Resettable {
)
}
}
- @inlinable public subscript(dynamicMember keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::KeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.KeyPathContainer {
get {
KeyPathContainer(
resettable: resettable,
@@ -165,12 +165,12 @@ extension Resettable::Resettable {
@dynamicMemberLookup public struct IfLetKeyPathContainer {
public typealias Value = Wrapped?
@usableFromInline
- internal let resettable: Resettable::Resettable
+ internal let resettable: Resettable.Resettable
@usableFromInline
- internal let keyPath: Swift::KeyPath.Resettable::IfLetKeyPathContainer.Resettable::Value>
+ internal let keyPath: Swift.KeyPath.IfLetKeyPathContainer.Value>
@usableFromInline
- internal init(resettable: Resettable::Resettable, keyPath: Swift::KeyPath.Resettable::IfLetKeyPathContainer.Resettable::Value>)
- @inlinable public subscript(dynamicMember keyPath: Swift::ReferenceWritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.KeyPath.IfLetKeyPathContainer.Value>)
+ @inlinable public subscript(dynamicMember keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer {
get {
IfLetWritableKeyPathContainer(
resettable: resettable,
@@ -178,7 +178,7 @@ extension Resettable::Resettable {
)
}
}
- @inlinable public subscript(dynamicMember keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer {
get {
IfLetKeyPathContainer(
resettable: resettable,
@@ -190,18 +190,18 @@ extension Resettable::Resettable {
@dynamicMemberLookup public struct IfLetWritableKeyPathContainer {
public typealias Value = Wrapped?
@usableFromInline
- internal let resettable: Resettable::Resettable
+ internal let resettable: Resettable.Resettable
@usableFromInline
- internal let keyPath: Swift::WritableKeyPath.Resettable::IfLetWritableKeyPathContainer.Resettable::Value>
+ internal let keyPath: Swift.WritableKeyPath.IfLetWritableKeyPathContainer.Value>
@usableFromInline
- internal init(resettable: Resettable::Resettable, keyPath: Swift::WritableKeyPath.Resettable::IfLetWritableKeyPathContainer.Resettable::Value>)
+ internal init(resettable: Resettable.Resettable, keyPath: Swift.WritableKeyPath.IfLetWritableKeyPathContainer.Value>)
@discardableResult
- @inlinable public func callAsFunction(_ value: Wrapped, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ value: Wrapped, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable {
guard resettable.wrappedValue[keyPath: keyPath] != nil else { return resettable }
return self.callAsFunction(operation) { $0 = value }
}
@discardableResult
- @inlinable public func callAsFunction(_ operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift::Void) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift.Void) -> Resettable.Resettable {
guard let value = resettable.wrappedValue[keyPath: keyPath] else { return resettable }
return resettable._modify(
operation: operation,
@@ -210,7 +210,7 @@ extension Resettable::Resettable {
)
}
@discardableResult
- @inlinable public func callAsFunction(_ operation: Resettable::Resettable.Resettable::OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift::Void, undo: @escaping (inout Wrapped) -> Swift::Void) -> Resettable::Resettable {
+ @inlinable public func callAsFunction(_ operation: Resettable.Resettable.OperationBehavior = .default, _ action: @escaping (inout Wrapped) -> Swift.Void, undo: @escaping (inout Wrapped) -> Swift.Void) -> Resettable.Resettable {
guard let value = resettable.wrappedValue[keyPath: keyPath] else { return resettable }
return resettable._modify(
operation: operation,
@@ -219,7 +219,7 @@ extension Resettable::Resettable {
undo: undo
)
}
- @inlinable public subscript(dynamicMember keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer {
get {
IfLetWritableKeyPathContainer(
resettable: resettable,
@@ -227,7 +227,7 @@ extension Resettable::Resettable {
)
}
}
- @inlinable public subscript(dynamicMember keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer {
+ @inlinable public subscript(dynamicMember keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer {
get {
IfLetKeyPathContainer(
resettable: resettable,
@@ -237,60 +237,60 @@ extension Resettable::Resettable {
}
}
}
-extension Resettable::Resettable where Base : SwiftMarkerProtocols::_OptionalProtocol {
- public var ifLet: Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
+extension Resettable.Resettable where Base : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
get
}
}
-extension Resettable::Resettable {
- public func ifLet(_ keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer
- public func ifLet(_ keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer
+extension Resettable.Resettable {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
}
-extension Resettable::Resettable.Resettable::WritableKeyPathContainer where Value : SwiftMarkerProtocols::_OptionalProtocol {
- public var ifLet: Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
+extension Resettable.Resettable.WritableKeyPathContainer where Value : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
get
}
- public func ifNil(_ value: Value, operation: Resettable::Resettable.Resettable::OperationBehavior = .default) -> Resettable::Resettable
+ public func ifNil(_ value: Value, operation: Resettable.Resettable.OperationBehavior = .default) -> Resettable.Resettable
}
-extension Resettable::Resettable.Resettable::KeyPathContainer where Value : SwiftMarkerProtocols::_OptionalProtocol {
- public var ifLet: Resettable::Resettable.Resettable::IfLetKeyPathContainer {
+extension Resettable.Resettable.KeyPathContainer where Value : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetKeyPathContainer {
get
}
}
-extension Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer where Wrapped : SwiftMarkerProtocols::_OptionalProtocol {
- public var ifLet: Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
+extension Resettable.Resettable.IfLetWritableKeyPathContainer where Wrapped : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetWritableKeyPathContainer {
get
}
}
-extension Resettable::Resettable.Resettable::IfLetKeyPathContainer where Wrapped : SwiftMarkerProtocols::_OptionalProtocol {
- public var ifLet: Resettable::Resettable.Resettable::IfLetKeyPathContainer {
+extension Resettable.Resettable.IfLetKeyPathContainer where Wrapped : SwiftMarkerProtocols._OptionalProtocol {
+ public var ifLet: Resettable.Resettable.IfLetKeyPathContainer {
get
}
}
-extension Resettable::Resettable.Resettable::WritableKeyPathContainer {
- public func ifLet(_ keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer
- public func ifLet(_ keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer
+extension Resettable.Resettable.WritableKeyPathContainer {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
}
-extension Resettable::Resettable.Resettable::KeyPathContainer {
- public func ifLet(_ keyPath: Swift::ReferenceWritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer
- public func ifLet(_ keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer
+extension Resettable.Resettable.KeyPathContainer {
+ public func ifLet(_ keyPath: Swift.ReferenceWritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
}
-extension Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer {
- public func ifLet(_ keyPath: Swift::WritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer
- public func ifLet(_ keyPath: Swift::KeyPath) -> Resettable::Resettable.Resettable::IfLetKeyPathContainer
+extension Resettable.Resettable.IfLetWritableKeyPathContainer {
+ public func ifLet(_ keyPath: Swift.WritableKeyPath) -> Resettable.Resettable.IfLetWritableKeyPathContainer
+ public func ifLet(_ keyPath: Swift.KeyPath) -> Resettable.Resettable.IfLetKeyPathContainer
}
-extension Resettable::Resettable.Resettable::IfLetKeyPathContainer {
- public func ifLet(_ keyPath: Swift::ReferenceWritableKeyPath) -> Resettable::Resettable.Resettable::IfLetWritableKeyPathContainer
- public func ifLet(_ keyPath: Swift::KeyPath) -> Resettable::Resettable