Expand description
§Tolerance
and DeltaEq
traits
This module deals with comparing two colors by DeltaE
within a certain Tolerance
.
See also: assert_delta_eq
§Implementing Tolerance
and DeltaEq
use deltae::*;
struct MyTolerance(f32);
impl Tolerance for MyTolerance {
fn tolerance(self) -> f32 {
self.0
}
}
#[derive(Copy, Clone)]
struct MyLab(f32, f32, f32);
// Types that implement Into<Lab> also implement the Delta trait
impl From<MyLab> for LabValue {
fn from(mylab: MyLab) -> LabValue {
LabValue {
l: mylab.0,
a: mylab.1,
b: mylab.2,
}
}
}
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));
Traits§
- Trait to define a tolerance value for the
DeltaEq
trait