vds_ios/VDS/Utilities/Clamping.swift
2024-03-06 21:25:18 +05:30

25 lines
514 B
Swift

//
// Clamping.swift
// VDS
//
// Created by Bandaru, Krishna Kishore on 05/03/24.
//
import Foundation
@propertyWrapper public struct Clamping<Value: Comparable> {
private var value: Value
private let range: ClosedRange<Value>
public init(range: ClosedRange<Value>) {
self.value = range.lowerBound
self.range = range
}
public var wrappedValue: Value {
get { value }
set { value = min(max(range.lowerBound, newValue), range.upperBound) }
}
}