31 lines
976 B
Swift
31 lines
976 B
Swift
import Foundation
|
|
import LocalData
|
|
import SharedKit
|
|
|
|
extension StorageKeys {
|
|
/// Stores a shared user profile in the App Group container.
|
|
/// - Domain: App Group File System
|
|
/// - Security: None
|
|
/// - Sync: Never
|
|
struct AppGroupUserProfileKey: StorageKey {
|
|
typealias Value = UserProfile
|
|
|
|
let directory: FileDirectory
|
|
let name = "app_group_user_profile.json"
|
|
let security: SecurityPolicy = .none
|
|
let serializer: Serializer<UserProfile> = .json
|
|
let owner = "SampleApp"
|
|
let description = "Stores a profile shared between the app and extensions."
|
|
let availability: PlatformAvailability = .all
|
|
let syncPolicy: SyncPolicy = .never
|
|
|
|
init(directory: FileDirectory = .documents) {
|
|
self.directory = directory
|
|
}
|
|
|
|
var domain: StorageDomain {
|
|
.appGroupFileSystem(identifier: AppGroupConfiguration.identifier, directory: directory)
|
|
}
|
|
}
|
|
}
|