Trait strict_num::ApproxEq

source ·
pub trait ApproxEq: Sized {
    type Margin: Copy + Default;

    // Required method
    fn approx_eq<M>(self, other: Self, margin: M) -> bool
       where M: Into<Self::Margin>;

    // Provided method
    fn approx_ne<M>(self, other: Self, margin: M) -> bool
       where M: Into<Self::Margin> { ... }
}
Expand description

A trait for approximate equality comparisons.

Required Associated Types§

source

type Margin: Copy + Default

This type type defines a margin within which two values are to be considered approximately equal. It must implement Default so that approx_eq() can be called on unknown types.

Required Methods§

source

fn approx_eq<M>(self, other: Self, margin: M) -> bool
where M: Into<Self::Margin>,

This method tests that the self and other values are equal within margin of each other.

Provided Methods§

source

fn approx_ne<M>(self, other: Self, margin: M) -> bool
where M: Into<Self::Margin>,

This method tests that the self and other values are not within margin of each other.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl ApproxEq for f32

§

type Margin = F32Margin

source§

fn approx_eq<M>(self, other: f32, margin: M) -> bool
where M: Into<<f32 as ApproxEq>::Margin>,

source§

impl ApproxEq for f64

§

type Margin = F64Margin

source§

fn approx_eq<M>(self, other: f64, margin: M) -> bool
where M: Into<<f64 as ApproxEq>::Margin>,

source§

impl<T> ApproxEq for &[T]
where T: Copy + ApproxEq,

§

type Margin = <T as ApproxEq>::Margin

source§

fn approx_eq<M>(self, other: &[T], margin: M) -> bool
where M: Into<<&[T] as ApproxEq>::Margin>,

Implementors§