1234567891011121314151617181920212223242526 |
- import Foundation
- internal final class Protected<T: Equatable> {
- typealias ConditionBlock = (_ oldValue: T, T) -> T
- private var _value: T
- private var condition: ConditionBlock
- public var value: T {
- get { return _value }
- set { _value = condition(_value, newValue) }
- }
- init(_ value: T, when condition: @escaping ConditionBlock) {
- self._value = value
- self.condition = condition
- }
- }
|