pub trait ApproxEq: Sized {
type Epsilon: NumCast + Float;
// Required method
fn approx_eq_eps(&self, other: &Self, epsilon: &Self::Epsilon) -> bool;
// Provided methods
fn approx_epsilon() -> Self::Epsilon { ... }
fn approx_eq(&self, other: &Self) -> bool { ... }
}