forked from shadowfacts/Tusker
Fix feature flag preference decoding with old flags
This commit is contained in:
parent
e5c4fceacd
commit
00c44c612f
|
@ -12,6 +12,17 @@ struct StatusContentTypeKey: MigratablePreferenceKey {
|
||||||
static var defaultValue: StatusContentType { .plain }
|
static var defaultValue: StatusContentType { .plain }
|
||||||
}
|
}
|
||||||
|
|
||||||
struct FeatureFlagsKey: MigratablePreferenceKey {
|
struct FeatureFlagsKey: MigratablePreferenceKey, CustomCodablePreferenceKey {
|
||||||
static var defaultValue: Set<FeatureFlag> { [] }
|
static var defaultValue: Set<FeatureFlag> { [] }
|
||||||
|
|
||||||
|
static func encode(value: Set<FeatureFlag>, to encoder: any Encoder) throws {
|
||||||
|
var container = encoder.singleValueContainer()
|
||||||
|
try container.encode(value.map(\.rawValue))
|
||||||
|
}
|
||||||
|
|
||||||
|
static func decode(from decoder: any Decoder) throws -> Set<FeatureFlag>? {
|
||||||
|
let container = try decoder.singleValueContainer()
|
||||||
|
let names = try container.decode([String].self)
|
||||||
|
return Set(names.compactMap(FeatureFlag.init(rawValue:)))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue