# Trait deltae::eq::DeltaEq
[−][src]

    pub trait DeltaEq<D: Delta + Copy>: Delta + Copy {
        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

[src]

#### 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`

## Implementors

[src]

### impl<D: Delta + Copy> DeltaEq<D> for LabValue

[src]

### impl<D: Delta + Copy> DeltaEq<D> for LchValue

[src]

### impl<D: Delta + Copy> DeltaEq<D> for XyzValue