Support `@AppStorage`
This commit is contained in:
parent
d328da99d5
commit
34264c0a2e
|
@ -110,4 +110,67 @@ public struct Default<Value: Codable>: DynamicProperty {
|
||||||
key.reset()
|
key.reset()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@available(macOS 11, iOS 14, tvOS 14, watchOS 7, *)
|
||||||
|
extension AppStorage {
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Bool {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Int {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Double {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == String {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == URL {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Data {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value: RawRepresentable, Value.RawValue == Int {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value: RawRepresentable, Value.RawValue == String {
|
||||||
|
self.init(wrappedValue: key.defaultValue, key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@available(macOS 11, iOS 14, tvOS 14, watchOS 7, *)
|
||||||
|
extension AppStorage where Value: ExpressibleByNilLiteral {
|
||||||
|
// swiftlint:disable:next discouraged_optional_boolean
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Bool? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Int? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Double? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == String? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == URL? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
|
||||||
|
public init(_ key: Defaults.Key<Value>) where Value == Data? {
|
||||||
|
self.init(key.name, store: key.suite)
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue