approx

Trait RelativeEq

Source
pub trait RelativeEq<Rhs = Self>: AbsDiffEq<Rhs>
where Rhs: ?Sized,
{ // Required methods fn default_max_relative() -> Self::Epsilon; fn relative_eq( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool; // Provided method fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool { ... } }
Expand description

Equality comparisons between two numbers using both the absolute difference and relative based comparisons.

Required Methods§

Source

fn default_max_relative() -> Self::Epsilon

The default relative tolerance for testing values that are far-apart.

This is used when no max_relative value is supplied to the [relative_eq] macro.

Source

fn relative_eq( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool

A test for equality that uses a relative comparison if the values are far apart.

Provided Methods§

Source

fn relative_ne( &self, other: &Rhs, epsilon: Self::Epsilon, max_relative: Self::Epsilon, ) -> bool

The inverse of RelativeEq::relative_eq.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl RelativeEq for f32

Source§

fn default_max_relative() -> f32

Source§

fn relative_eq(&self, other: &f32, epsilon: f32, max_relative: f32) -> bool

Source§

impl RelativeEq for f64

Source§

fn default_max_relative() -> f64

Source§

fn relative_eq(&self, other: &f64, epsilon: f64, max_relative: f64) -> bool

Source§

impl<'a, T: RelativeEq + ?Sized> RelativeEq for &'a T

Source§

fn default_max_relative() -> T::Epsilon

Source§

fn relative_eq( &self, other: &&'a T, epsilon: T::Epsilon, max_relative: T::Epsilon, ) -> bool

Source§

impl<'a, T: RelativeEq + ?Sized> RelativeEq for &'a mut T

Source§

fn default_max_relative() -> T::Epsilon

Source§

fn relative_eq( &self, other: &&'a mut T, epsilon: T::Epsilon, max_relative: T::Epsilon, ) -> bool

Source§

impl<A, B> RelativeEq<[B]> for [A]
where A: RelativeEq<B>, A::Epsilon: Clone,

Source§

fn default_max_relative() -> A::Epsilon

Source§

fn relative_eq( &self, other: &[B], epsilon: A::Epsilon, max_relative: A::Epsilon, ) -> bool

Source§

impl<T: RelativeEq + Copy> RelativeEq for Cell<T>

Source§

fn default_max_relative() -> T::Epsilon

Source§

fn relative_eq( &self, other: &Cell<T>, epsilon: T::Epsilon, max_relative: T::Epsilon, ) -> bool

Source§

impl<T: RelativeEq + ?Sized> RelativeEq for RefCell<T>

Source§

fn default_max_relative() -> T::Epsilon

Source§

fn relative_eq( &self, other: &RefCell<T>, epsilon: T::Epsilon, max_relative: T::Epsilon, ) -> bool

Implementors§

impl<C, T> RelativeEq for PreAlpha<C>
where C: RelativeEq<Epsilon = T::Epsilon> + Premultiply<Scalar = T>, T: RelativeEq, T::Epsilon: Clone,

impl<C, T> RelativeEq for Alpha<C, T>
where C: RelativeEq<Epsilon = T::Epsilon>, T: RelativeEq, T::Epsilon: Clone,

impl<S, T> RelativeEq for Luma<S, T>
where T: RelativeEq,

impl<S, T> RelativeEq for Rgb<S, T>
where T: RelativeEq, T::Epsilon: Clone,

impl<S, T> RelativeEq for Hsl<S, T>
where T: RelativeEq, T::Epsilon: Clone, RgbHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<S, T> RelativeEq for Hsv<S, T>
where T: RelativeEq, T::Epsilon: Clone, RgbHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<S, T> RelativeEq for Hwb<S, T>
where T: RelativeEq, T::Epsilon: Clone, RgbHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Jch<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Jmh<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Jsh<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Qch<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Qmh<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Qsh<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16UcsJab<T>
where T: RelativeEq, T::Epsilon: Clone,

impl<T> RelativeEq for Cam16UcsJmh<T>
where T: RelativeEq, T::Epsilon: Clone, Cam16Hue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Cam16Hue<T>
where T: RealAngle + SignedAngle + Zero + AngleEq<Mask = bool> + Sub<Output = T> + Clone + RelativeEq, T::Epsilon: HalfRotation + Mul<Output = T::Epsilon>,

impl<T> RelativeEq for LabHue<T>
where T: RealAngle + SignedAngle + Zero + AngleEq<Mask = bool> + Sub<Output = T> + Clone + RelativeEq, T::Epsilon: HalfRotation + Mul<Output = T::Epsilon>,

impl<T> RelativeEq for LuvHue<T>
where T: RealAngle + SignedAngle + Zero + AngleEq<Mask = bool> + Sub<Output = T> + Clone + RelativeEq, T::Epsilon: HalfRotation + Mul<Output = T::Epsilon>,

impl<T> RelativeEq for Okhsl<T>
where T: RelativeEq, T::Epsilon: Clone, OklabHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Okhsv<T>
where T: RelativeEq, T::Epsilon: Clone, OklabHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Okhwb<T>
where T: RelativeEq, T::Epsilon: Clone, OklabHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for Oklab<T>
where T: RelativeEq, T::Epsilon: Clone,

impl<T> RelativeEq for OklabHue<T>
where T: RealAngle + SignedAngle + Zero + AngleEq<Mask = bool> + Sub<Output = T> + Clone + RelativeEq, T::Epsilon: HalfRotation + Mul<Output = T::Epsilon>,

impl<T> RelativeEq for Oklch<T>
where T: RelativeEq, T::Epsilon: Clone, OklabHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<T> RelativeEq for RgbHue<T>
where T: RealAngle + SignedAngle + Zero + AngleEq<Mask = bool> + Sub<Output = T> + Clone + RelativeEq, T::Epsilon: HalfRotation + Mul<Output = T::Epsilon>,

impl<Wp, T> RelativeEq for Hsluv<Wp, T>
where T: RelativeEq, T::Epsilon: Clone, LuvHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<Wp, T> RelativeEq for Lab<Wp, T>
where T: RelativeEq, T::Epsilon: Clone,

impl<Wp, T> RelativeEq for Lch<Wp, T>
where T: RelativeEq, T::Epsilon: Clone, LabHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<Wp, T> RelativeEq for Lchuv<Wp, T>
where T: RelativeEq, T::Epsilon: Clone, LuvHue<T>: RelativeEq + AbsDiffEq<Epsilon = T::Epsilon>,

impl<Wp, T> RelativeEq for Luv<Wp, T>
where T: RelativeEq, T::Epsilon: Clone,

impl<Wp, T> RelativeEq for Xyz<Wp, T>
where T: RelativeEq, T::Epsilon: Clone,

impl<Wp, T> RelativeEq for Yxy<Wp, T>
where T: RelativeEq, T::Epsilon: Clone,