extension Defaults.Keys {
static let foo = Key<Int?>("foo", default: 1)
}
Here I have some option that defaults to 1, but is optional.
Defaults[.foo] // => 1
Defaults[.foo] = 2
Defaults[.foo] // => 2
Defaults[.foo] = nil
Defaults[.foo] // => 1
Why would explicitly setting an optional to nil
make it reset to the default? Isn't that what reset()
is for? Logically it would make sense to have an option that has a default value, but can also be turned off.
I tried with an Enum:
enum OptionalKey: Defaults.Serializable {
case some(Int)
case none
}
But this fails as it doesn't conform to Defaults.Serializable
.
Is there no way to have both a default key, but also retain the ability to set it to nil?
Pay now to fund the work behind this issue.
Get updates on progress being made.
Maintainer is rewarded once the issue is completed.
You're funding impactful open source efforts
You want to contribute to this effort
You want to get funding like this too