// // Copyright 2023, 2024 New Vector Ltd. // // SPDX-License-Identifier: AGPL-3.0-only // Please see LICENSE in the repository root for full details. // extension Comparable { func clamped(to limits: ClosedRange) -> Self { min(max(self, limits.lowerBound), limits.upperBound) } }