::modwire::expose!(
pub bits
pub bound
pub checked
pub checked2
pub overflowing
pub pow
pub prim
pub quick_access
pub root
pub sign
pub signed
pub trig
pub unsigned
pub wrapping
);
pub type Result<T> = ::core::result::Result<T, Error>;
pub enum Error {
Overflow,
Underflow,
DivisionByZero,
ModuloByZero,
ShiftOverflow,
NegationOverflow
}
pub trait Int
where
Self: ::core::marker::Sized,
Self: ::core::cmp::Eq,
Self: ::core::cmp::Ord,
Self: Num,
Self: Bits,
Self: Bound,
Self: Sign,
Self: CheckedAdd,
Self: CheckedDiv,
Self: CheckedMul,
Self: CheckedNeg,
Self: CheckedRem,
Self: CheckedShl,
Self: CheckedShr,
Self: CheckedSub,
Self: OverflowingAdd,
Self: OverflowingDiv,
Self: OverflowingMul,
Self: OverflowingNeg,
Self: OverflowingRem,
Self: OverflowingShl,
Self: OverflowingShr,
Self: OverflowingSub,
Self: WrappingAdd,
Self: WrappingDiv,
Self: WrappingMul,
Self: WrappingNeg,
Self: WrappingPow,
Self: WrappingRem,
Self: WrappingSub,
Self: ::core::ops::Shl<Output = Self>,
Self: ::core::ops::ShlAssign,
Self: ::core::ops::Shr<Output = Self>,
Self: ::core::ops::ShrAssign,
Self: ::core::ops::BitAnd<Output = Self>,
Self: ::core::ops::BitAndAssign,
Self: ::core::ops::BitOr<Output = Self>,
Self: ::core::ops::BitOrAssign,
Self: ::core::ops::BitXor<Output = Self>,
Self: ::core::ops::BitXorAssign,
Self: for<'a> ::core::ops::Shl<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::ShlAssign<&'a Self>,
Self: for<'a> ::core::ops::Shr<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::ShrAssign<&'a Self>,
Self: for<'a> ::core::ops::BitAnd<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::BitAndAssign<&'a Self>,
Self: for<'a> ::core::ops::BitOr<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::BitOrAssign<&'a Self>,
Self: for<'a> ::core::ops::BitXor<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::BitXorAssign<&'a Self>,
Self: ::core::convert::TryFrom<i8>,
Self: ::core::convert::TryFrom<i16>,
Self: ::core::convert::TryFrom<i32>,
Self: ::core::convert::TryFrom<i64>,
Self: ::core::convert::TryFrom<i128>,
Self: ::core::convert::TryFrom<isize>,
Self: ::core::convert::TryFrom<u8>,
Self: ::core::convert::TryFrom<u16>,
Self: ::core::convert::TryFrom<u32>,
Self: ::core::convert::TryFrom<u64>,
Self: ::core::convert::TryFrom<u128>,
Self: ::core::convert::TryFrom<usize>,
Self: ::core::convert::TryInto<i8>,
Self: ::core::convert::TryInto<i16>,
Self: ::core::convert::TryInto<i32>,
Self: ::core::convert::TryInto<i64>,
Self: ::core::convert::TryInto<i128>,
Self: ::core::convert::TryInto<isize>,
Self: ::core::convert::TryInto<u8>,
Self: ::core::convert::TryInto<u16>,
Self: ::core::convert::TryInto<u32>,
Self: ::core::convert::TryInto<u64>,
Self: ::core::convert::TryInto<u128>,
Self: ::core::convert::TryInto<usize> {}
pub trait Float
where
Self: ::core::marker::Sized,
Self: Num,
Self: ArcTan,
Self: ArcSin,
Self: ArcCos,
Self: Tan,
Self: Sin,
Self: Cos,
Self: ToRad,
Self: ToDeg,
Self: PowF,
Self: PowI {}
pub trait Num
where
Self: QuickAccess,
Self: Sqrt,
Self: ::core::default::Default,
Self: ::core::clone::Clone,
Self: ::core::marker::Sized,
Self: ::core::marker::Copy,
Self: ::core::cmp::PartialEq,
Self: ::core::cmp::PartialOrd,
Self: ::core::fmt::Debug,
Self: ::core::fmt::Display,
Self: ::core::ops::Add<Output = Self>,
Self: ::core::ops::AddAssign,
Self: ::core::ops::Sub<Output = Self>,
Self: ::core::ops::SubAssign,
Self: ::core::ops::Mul<Output = Self>,
Self: ::core::ops::MulAssign,
Self: ::core::ops::Div<Output = Self>,
Self: ::core::ops::DivAssign,
Self: ::core::ops::Rem<Output = Self>,
Self: ::core::ops::RemAssign,
Self: for<'a> ::core::ops::Add<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::AddAssign<&'a Self>,
Self: for<'a> ::core::ops::Sub<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::SubAssign<&'a Self>,
Self: for<'a> ::core::ops::Mul<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::MulAssign<&'a Self>,
Self: for<'a> ::core::ops::Div<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::DivAssign<&'a Self>,
Self: for<'a> ::core::ops::Rem<&'a Self, Output = Self>,
Self: for<'a> ::core::ops::RemAssign<&'a Self> {}
impl<T> Int for T
where
T: ::core::marker::Sized,
T: ::core::cmp::Eq,
T: ::core::cmp::Ord,
T: Num,
T: Bits,
T: Bound,
T: Sign,
T: CheckedAdd,
T: CheckedDiv,
T: CheckedMul,
T: CheckedNeg,
T: CheckedRem,
T: CheckedShl,
T: CheckedShr,
T: CheckedSub,
T: OverflowingAdd,
T: OverflowingDiv,
T: OverflowingMul,
T: OverflowingNeg,
T: OverflowingRem,
T: OverflowingShl,
T: OverflowingShr,
T: OverflowingSub,
T: WrappingAdd,
T: WrappingDiv,
T: WrappingMul,
T: WrappingNeg,
T: WrappingPow,
T: WrappingRem,
T: WrappingSub,
T: ::core::ops::Shl<Output = Self>,
T: ::core::ops::ShlAssign,
T: ::core::ops::Shr<Output = Self>,
T: ::core::ops::ShrAssign,
T: ::core::ops::BitAnd<Output = Self>,
T: ::core::ops::BitAndAssign,
T: ::core::ops::BitOr<Output = Self>,
T: ::core::ops::BitOrAssign,
T: ::core::ops::BitXor<Output = Self>,
T: ::core::ops::BitXorAssign,
T: for<'a> ::core::ops::Shl<&'a Self, Output = Self>,
T: for<'a> ::core::ops::ShlAssign<&'a Self>,
T: for<'a> ::core::ops::Shr<&'a Self, Output = Self>,
T: for<'a> ::core::ops::ShrAssign<&'a Self>,
T: for<'a> ::core::ops::BitAnd<&'a Self, Output = Self>,
T: for<'a> ::core::ops::BitAndAssign<&'a Self>,
T: for<'a> ::core::ops::BitOr<&'a Self, Output = Self>,
T: for<'a> ::core::ops::BitOrAssign<&'a Self>,
T: for<'a> ::core::ops::BitXor<&'a Self, Output = Self>,
T: for<'a> ::core::ops::BitXorAssign<&'a Self>,
T: ::core::convert::TryFrom<i8>,
T: ::core::convert::TryFrom<i16>,
T: ::core::convert::TryFrom<i32>,
T: ::core::convert::TryFrom<i64>,
T: ::core::convert::TryFrom<i128>,
T: ::core::convert::TryFrom<isize>,
T: ::core::convert::TryFrom<u8>,
T: ::core::convert::TryFrom<u16>,
T: ::core::convert::TryFrom<u32>,
T: ::core::convert::TryFrom<u64>,
T: ::core::convert::TryFrom<u128>,
T: ::core::convert::TryFrom<usize>,
T: ::core::convert::TryInto<i8>,
T: ::core::convert::TryInto<i16>,
T: ::core::convert::TryInto<i32>,
T: ::core::convert::TryInto<i64>,
T: ::core::convert::TryInto<i128>,
T: ::core::convert::TryInto<isize>,
T: ::core::convert::TryInto<u8>,
T: ::core::convert::TryInto<u16>,
T: ::core::convert::TryInto<u32>,
T: ::core::convert::TryInto<u64>,
T: ::core::convert::TryInto<u128>,
T: ::core::convert::TryInto<usize> {}
impl<T> Float for T
where
T: ::core::marker::Sized,
T: Num,
T: QuickAccess,
T: ArcTan,
T: ArcSin,
T: ArcCos,
T: Tan,
T: Sin,
T: Cos,
T: ToRad,
T: ToDeg,
T: PowF,
T: PowI {}
impl<T> Num for T
where
T: QuickAccess,
T: Sqrt,
T: ::core::default::Default,
T: ::core::clone::Clone,
T: ::core::marker::Sized,
T: ::core::marker::Copy,
T: ::core::cmp::PartialEq,
T: ::core::cmp::PartialOrd,
T: ::core::fmt::Debug,
T: ::core::fmt::Display,
T: ::core::ops::Add<Output = Self>,
T: ::core::ops::AddAssign,
T: ::core::ops::Sub<Output = Self>,
T: ::core::ops::SubAssign,
T: ::core::ops::Mul<Output = Self>,
T: ::core::ops::MulAssign,
T: ::core::ops::Div<Output = Self>,
T: ::core::ops::DivAssign,
T: ::core::ops::Rem<Output = Self>,
T: ::core::ops::RemAssign,
T: for<'a> ::core::ops::Add<&'a Self, Output = Self>,
T: for<'a> ::core::ops::AddAssign<&'a Self>,
T: for<'a> ::core::ops::Sub<&'a Self, Output = Self>,
T: for<'a> ::core::ops::SubAssign<&'a Self>,
T: for<'a> ::core::ops::Mul<&'a Self, Output = Self>,
T: for<'a> ::core::ops::MulAssign<&'a Self>,
T: for<'a> ::core::ops::Div<&'a Self, Output = Self>,
T: for<'a> ::core::ops::DivAssign<&'a Self>,
T: for<'a> ::core::ops::Rem<&'a Self, Output = Self>,
T: for<'a> ::core::ops::RemAssign<&'a Self> {}