import DefaultsKit
extension DefaultsKey {
static let testKey = Key<String>("testKey")
}
@propertyWrapper
public struct DefaultsVar<T: Codable> {
public let key: Key<T>
public var wrappedValue:T? {
get { Defaults.shared.get(for: key) }
set { newValue == nil ? Defaults.shared.clear(key) : Defaults.shared.set(newValue!, for: key) }
}
public init(_ key: Key<T>) { self.key = key }
}
fileprivate func testDefaultsKey() {
Defaults.shared.set("test value", for: .testKey)
_ = Defaults.shared.get(for: .testKey)
TestDefaultsVar.testValue = "testValue"
_ = TestDefaultsVar.testValue
}
fileprivate struct TestDefaultsVar {
@DefaultsVar(.testKey) static var testValue
}