30 lines
1.0 KiB
Swift
30 lines
1.0 KiB
Swift
import Foundation
|
|
import LocalData
|
|
|
|
extension StorageKeys {
|
|
/// Example using custom serializer for specialized encoding.
|
|
struct CustomEncodedKey: StorageKey {
|
|
typealias Value = String
|
|
|
|
let name = "custom_encoded"
|
|
let domain: StorageDomain = .fileSystem(directory: .documents)
|
|
let security: SecurityPolicy = .none
|
|
let serializer: Serializer<String> = .custom(
|
|
encode: { value in
|
|
Data(value.utf8).base64EncodedData()
|
|
},
|
|
decode: { data in
|
|
guard let decoded = Data(base64Encoded: data),
|
|
let string = String(data: decoded, encoding: .utf8) else {
|
|
throw StorageError.deserializationFailed
|
|
}
|
|
return string
|
|
}
|
|
)
|
|
let owner = "SampleApp"
|
|
let description = "Stores custom-encoded string data (Base64 example)."
|
|
let availability: PlatformAvailability = .all
|
|
let syncPolicy: SyncPolicy = .never
|
|
}
|
|
}
|