mod digit;
pub use digit::Digit;
#[cfg(feature = "unsafe")]
pub(crate) use digit::ToPtr;
pub(crate) use digit::{DoubleDigit, SignedDigit};
#[cfg(test)]
mod check_implementations;
pub type DivisionResult<T> = Result<T, crate::errors::DivisionError>;
pub trait RemDiv<T> {
type DivOutput;
type RemOutput;
fn rem_div(&self, other: &T) -> DivisionResult<(Self::DivOutput, Self::RemOutput)>;
fn div(&self, other: &T) -> DivisionResult<Self::DivOutput> {
Ok(self.rem_div(other)?.0)
}
fn rem(&self, other: &T) -> DivisionResult<Self::RemOutput> {
Ok(self.rem_div(other)?.1)
}
}
pub trait TrueDiv<T> {
fn truediv(&self, other: &T) -> DivisionResult<f64>;
}
pub trait Pow {
fn pow(&self, other: usize) -> Self;
}