WinterGram/third-party/SwiftColor/Sources/Clamping.swift
2026-04-24 23:19:15 +04:00

20 lines
492 B
Swift

@propertyWrapper
public struct Clamping<Value: Comparable> {
var value: Value
let range: ClosedRange<Value>
public init(wrappedValue value: Value, _ range: ClosedRange<Value>) {
precondition(range.contains(value))
self.value = value
self.range = range
}
public var wrappedValue: Value {
get {
value
}
set(newValue) {
value = min(max(range.lowerBound, newValue), range.upperBound)
}
}
}