1 2 3 4 5 6 7 8 9 10 11 12 13 14
/// A fraction `p`/`q` with integers `p` and `q`.
///
/// `p` is called the numerator and `q` is called the denominator.
pub trait Fraction<T>: Sized {
/// Returns the numerator `p`
fn numerator(&self) -> T;
/// Returns the denominator `q`
fn denominator(&self) -> T;
/// Returns the multiplicative inverse `q/p` for fraction `p/q`.
///
/// If `p` is zero, None is returned.
fn inv(&self) -> Option<Self>;
}