Trait deltae::eq::DeltaEq

source ·
pub trait DeltaEq<D: Delta + Copy>: Delta + Copy {
    // Provided method
    fn delta_eq<T: Tolerance>(
        &self,
        other: D,
        method: DEMethod,
        tolerance: T
    ) -> bool { ... }
}
Expand description

Trait to determine whether two values are within a certain tolerance of DeltaE. Types that implement Into<LabValue> implicitly implement Delta. Types that implement Delta and Copy may also implement DeltaEq for other types that also implement Delta and Copy.

use deltae::*;

#[derive(Copy, Clone)]
struct MyLab(f32, f32, f32);

// Types that implement Into<Lab> implicitly implement the Delta trait
impl From<MyLab> for LabValue {
    fn from(mylab: MyLab) -> LabValue {
        LabValue {
            l: mylab.0,
            a: mylab.1,
            b: mylab.2,
        }
    }
}

// Types that implement Delta and Copy may also implement DeltaEq for other types that also
// implement Delta and Copy
impl<D: Delta + Copy> DeltaEq<D> for MyLab {}

let mylab = MyLab(89.73, 1.88, -6.96);
let lab = LabValue::new(89.73, 1.88, -6.96).unwrap();
let de2000 = mylab.delta(lab, DEMethod::DE2000);
assert!(mylab.delta_eq(&lab, DE1976, 0.0));

Provided Methods§

source

fn delta_eq<T: Tolerance>( &self, other: D, method: DEMethod, tolerance: T ) -> bool

Return true if the value is less than or equal to the Tolerance

Object Safety§

This trait is not object safe.

Implementors§