 ///
 /// [Apple documentation on UserDefaults](https://developer.apple.com/documentation/foundation/userdefaults)
 @propertyWrapper
-public struct UserDefault<Value: Codable> {
+public final class UserDefault<Value: Codable> {
     private let key: String
     private let defaultValue: Value
     private var userDefaults: UserDefaults

                    errorLogger?(error)
                }
            }
        }
    }
}

public extension UserDefault {
    init<Wrapped>(_ key: String, `default`: Optional<Wrapped> = nil, userDefaults: UserDefaults = .standard) where Value == Optional<Wrapped> {
        self.init(key, default: `default`, userDefaults: userDefaults)
    }
}

import Combine
import Foundation

/// A type safe property wrapper to set and get values from UserDefaults with support for defaults values.
