Trait vek::ops::Clamp

source ·
pub trait Clamp<Bound = Self>: Sized {
    // Required method
    fn clamped(self, lower: Bound, upper: Bound) -> Self;

    // Provided methods
    fn clamped_to_inclusive_range(self, range: RangeInclusive<Bound>) -> Self { ... }
    fn clamp(val: Self, lower: Bound, upper: Bound) -> Self { ... }
    fn clamp_to_inclusive_range(val: Self, range: RangeInclusive<Bound>) -> Self { ... }
    fn clamped01(self) -> Self
       where Bound: Zero + One { ... }
    fn clamp01(val: Self) -> Self
       where Bound: Zero + One { ... }
    fn clamped_minus1_1(self) -> Self
       where Bound: One + Neg<Output = Bound> { ... }
    fn clamp_minus1_1(val: Self) -> Self
       where Bound: One + Neg<Output = Bound> { ... }
}
Expand description

A scalar or vector that can be constrained to be between two values (inclusive).

Required Methods§

source

fn clamped(self, lower: Bound, upper: Bound) -> Self

Constrains this value to be between lower and upper (inclusive).

Panics

Panics if lower is greater than upper. Swap the values yourself if necessary.

use vek::ops::Clamp;

assert_eq!(7.clamped(5, 10), 7);
assert_eq!(4.clamped(5, 10), 5);
assert_eq!(5.clamped(5, 10), 5);
assert_eq!(10.clamped(5, 10), 10);
assert_eq!(11.clamped(5, 10), 10);

Provided Methods§

source

fn clamped_to_inclusive_range(self, range: RangeInclusive<Bound>) -> Self

Alias to clamped, which accepts a RangeInclusive parameter instead of two values.

source

fn clamp(val: Self, lower: Bound, upper: Bound) -> Self

Alias to clamped, which doesn’t take self.

Panics

Panics if lower is greater than upper. Swap the values yourself if necessary.

source

fn clamp_to_inclusive_range(val: Self, range: RangeInclusive<Bound>) -> Self

Alias to clamp, which accepts a RangeInclusive parameter instead of two values.

source

fn clamped01(self) -> Selfwhere Bound: Zero + One,

Constrains this value to be between 0 and 1 (inclusive).

source

fn clamp01(val: Self) -> Selfwhere Bound: Zero + One,

Alias to clamped01, which doesn’t take self.

source

fn clamped_minus1_1(self) -> Selfwhere Bound: One + Neg<Output = Bound>,

Constrains this value to be between -1 and 1 (inclusive).

source

fn clamp_minus1_1(val: Self) -> Selfwhere Bound: One + Neg<Output = Bound>,

Alias to clamped_minus1_1, which doesn’t take self.

Implementations on Foreign Types§

source§

impl Clamp<Wrapping<i16>> for Wrapping<i16>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<i8> for i8

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<i32> for i32

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<u16>> for Wrapping<u16>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<i64> for i64

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<f64> for f64

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<u32>> for Wrapping<u32>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<u64> for u64

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<u8> for u8

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<f32> for f32

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<u64>> for Wrapping<u64>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<i16> for i16

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<i32>> for Wrapping<i32>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<i8>> for Wrapping<i8>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<isize> for isize

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<usize>> for Wrapping<usize>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<u32> for u32

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<u16> for u16

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<isize>> for Wrapping<isize>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<u8>> for Wrapping<u8>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<usize> for usize

source§

fn clamped(self, lower: Self, upper: Self) -> Self

source§

impl Clamp<Wrapping<i64>> for Wrapping<i64>

source§

fn clamped(self, lower: Self, upper: Self) -> Self

Implementors§

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::extent2::Extent2<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::extent3::Extent3<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::rgb::Rgb<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::rgba::Rgba<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec2::Vec2<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec3::Vec3<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_c::vec4::Vec4<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::extent2::Extent2<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::extent3::Extent3<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::rgb::Rgb<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::rgba::Rgba<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec2::Vec2<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec3::Vec3<T>

source§

impl<T: Clamp + Copy> Clamp<T> for vek::vec::repr_simd::vec4::Vec4<T>

source§

impl<T: Clamp> Clamp<Extent2<T>> for vek::vec::repr_c::extent2::Extent2<T>

source§

impl<T: Clamp> Clamp<Extent3<T>> for vek::vec::repr_c::extent3::Extent3<T>

source§

impl<T: Clamp> Clamp<Rgb<T>> for vek::vec::repr_c::rgb::Rgb<T>

source§

impl<T: Clamp> Clamp<Rgba<T>> for vek::vec::repr_c::rgba::Rgba<T>

source§

impl<T: Clamp> Clamp<Vec2<T>> for vek::vec::repr_c::vec2::Vec2<T>

source§

impl<T: Clamp> Clamp<Vec3<T>> for vek::vec::repr_c::vec3::Vec3<T>

source§

impl<T: Clamp> Clamp<Vec4<T>> for vek::vec::repr_c::vec4::Vec4<T>

source§

impl<T: Clamp> Clamp<Extent2<T>> for vek::vec::repr_simd::extent2::Extent2<T>

source§

impl<T: Clamp> Clamp<Extent3<T>> for vek::vec::repr_simd::extent3::Extent3<T>

source§

impl<T: Clamp> Clamp<Rgb<T>> for vek::vec::repr_simd::rgb::Rgb<T>

source§

impl<T: Clamp> Clamp<Rgba<T>> for vek::vec::repr_simd::rgba::Rgba<T>

source§

impl<T: Clamp> Clamp<Vec2<T>> for vek::vec::repr_simd::vec2::Vec2<T>

source§

impl<T: Clamp> Clamp<Vec3<T>> for vek::vec::repr_simd::vec3::Vec3<T>

source§

impl<T: Clamp> Clamp<Vec4<T>> for vek::vec::repr_simd::vec4::Vec4<T>