1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
pub trait ClampExt: Ord { fn clamp_saturating(self, min: Self, max: Self) -> Self where Self: Sized, { if self < min { min } else if self > max { max } else { self } } } impl<T> ClampExt for T where T: Ord {}