import Foundation extension Comparable { func clamped(to limits: ClosedRange) -> Self { min(max(self, limits.lowerBound), limits.upperBound) } }