mirror of
https://github.com/whoeevee/EeveeSpotifyReborn.git
synced 2026-01-09 00:23:20 +01:00
24 lines
572 B
Swift
24 lines
572 B
Swift
import Foundation
|
|
|
|
@propertyWrapper
|
|
struct UserDefault<T: Codable> {
|
|
let key: String
|
|
let defaultValue: T
|
|
var container: UserDefaults = .standard
|
|
|
|
var wrappedValue: T {
|
|
get {
|
|
if let data = container.data(forKey: key),
|
|
let value = try? JSONDecoder().decode(T.self, from: data) {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|
|
set {
|
|
if let data = try? JSONEncoder().encode(newValue) {
|
|
container.set(data, forKey: key)
|
|
}
|
|
}
|
|
}
|
|
}
|