1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import Foundation
- public struct DefaultsKey<ValueType: DefaultsSerializable> {
- public let _key: String
- public let defaultValue: ValueType.T?
- internal var isOptional: Bool
- public init(_ key: String, defaultValue: ValueType.T) {
- self._key = key
- self.defaultValue = defaultValue
- self.isOptional = false
- }
-
-
- private init(key: String) {
- self._key = key
- self.defaultValue = nil
- self.isOptional = true
- }
- @available(*, unavailable, message: "This key needs a `defaultValue` parameter. If this type does not have a default value, consider using an optional key.")
- public init(_ key: String) {
- fatalError()
- }
- }
- public extension DefaultsKey where ValueType: DefaultsSerializable, ValueType: OptionalType, ValueType.Wrapped: DefaultsSerializable {
- init(_ key: String) {
- self.init(key: key)
- }
- init(_ key: String, defaultValue: ValueType.T) {
- self._key = key
- self.defaultValue = defaultValue
- self.isOptional = true
- }
- }
|