Enum fraction::dynaint::DynaInt [−][src]
pub enum DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger, {
S(T),
__H(G),
}Expand description
The wrapper implementation
Keeps data within S (small) whenever possible, performing checked arithmetic and moving onto __H (huge) when overflows happen. Every math operation on __H performs a read of the resulting number with TryToConvertFrom::try_to_convert_from. Every math operation on S is checked for overflows.
Variants
Represents the small type, implementing Copy and allocated on stack. The wrapper tries to reduce contained values to this type whenever possible
Represents the huge type, implementing Clone. To be used when values overflow T
Implementations
impl<T, G> DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
Unpacks the value
Utilises Result::Ok for S(small) numbers and Result::Err for __H(huge) ones
Examples
use fraction::dynaint::DynaInt;
type D = DynaInt<u8, u16>;
assert_eq!(Ok(1u8), D::from(1u8).unpack());
assert_eq!(Err(256u16), D::from(256u16).unpack());Trait Implementations
impl<'a, T, G> Add<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Add<Output = T> + CheckedAdd,
G: Clone + GenericInteger + Add<Output = G> + CheckedAdd,
&'a G: Add<G, Output = G> + Add<Output = G>,
impl<'a, T, G> Add<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Add<Output = T> + CheckedAdd,
G: Clone + GenericInteger + Add<Output = G> + CheckedAdd,
&'a G: Add<G, Output = G> + Add<Output = G>,
impl<'a, T, G> Add<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> Add<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Add<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Add<Output = T> + CheckedAdd,
G: Clone + GenericInteger + Add<Output = G> + CheckedAdd,
impl<T, G> Add<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Add<Output = T> + CheckedAdd,
G: Clone + GenericInteger + Add<Output = G> + CheckedAdd,
impl<'a, T, G> AddAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + AddAssign + CheckedAdd,
G: Clone + GenericInteger + AddAssign + CheckedAdd,
impl<'a, T, G> AddAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + AddAssign + CheckedAdd,
G: Clone + GenericInteger + AddAssign + CheckedAdd,
Performs the += operation. Read more
impl<T, G> AddAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + AddAssign + CheckedAdd,
G: Clone + GenericInteger + AddAssign + CheckedAdd,
impl<T, G> AddAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + AddAssign + CheckedAdd,
G: Clone + GenericInteger + AddAssign + CheckedAdd,
Performs the += operation. Read more
impl<T, G> BitAnd<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAnd<Output = T>,
G: Clone + GenericInteger + BitAnd<Output = G>,
impl<T, G> BitAnd<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAnd<Output = T>,
G: Clone + GenericInteger + BitAnd<Output = G>,
impl<'a, T, G> BitAndAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAndAssign<&'a T>,
G: Clone + GenericInteger + BitAndAssign<&'a G> + BitAndAssign<G>,
impl<'a, T, G> BitAndAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAndAssign<&'a T>,
G: Clone + GenericInteger + BitAndAssign<&'a G> + BitAndAssign<G>,
Performs the &= operation. Read more
impl<T, G> BitAndAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAndAssign,
G: Clone + GenericInteger + BitAndAssign,
impl<T, G> BitAndAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitAndAssign,
G: Clone + GenericInteger + BitAndAssign,
Performs the &= operation. Read more
impl<T, G> BitOr<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOr<Output = T>,
G: Clone + GenericInteger + BitOr<Output = G>,
impl<T, G> BitOr<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOr<Output = T>,
G: Clone + GenericInteger + BitOr<Output = G>,
impl<'a, T, G> BitOrAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOrAssign<&'a T>,
G: Clone + GenericInteger + BitOrAssign<&'a G> + BitOrAssign<G>,
impl<'a, T, G> BitOrAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOrAssign<&'a T>,
G: Clone + GenericInteger + BitOrAssign<&'a G> + BitOrAssign<G>,
Performs the |= operation. Read more
impl<T, G> BitOrAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOrAssign,
G: Clone + GenericInteger + BitOrAssign,
impl<T, G> BitOrAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitOrAssign,
G: Clone + GenericInteger + BitOrAssign,
Performs the |= operation. Read more
impl<T, G> BitXor<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXor<Output = T>,
G: Clone + GenericInteger + BitXor<Output = G>,
impl<T, G> BitXor<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXor<Output = T>,
G: Clone + GenericInteger + BitXor<Output = G>,
impl<'a, T, G> BitXorAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXorAssign<&'a T>,
G: Clone + GenericInteger + BitXorAssign<&'a G> + BitXorAssign<G>,
impl<'a, T, G> BitXorAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXorAssign<&'a T>,
G: Clone + GenericInteger + BitXorAssign<&'a G> + BitXorAssign<G>,
Performs the ^= operation. Read more
impl<T, G> BitXorAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXorAssign,
G: Clone + GenericInteger + BitXorAssign,
impl<T, G> BitXorAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + BitXorAssign,
G: Clone + GenericInteger + BitXorAssign,
Performs the ^= operation. Read more
impl<T, G> Bounded for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Bounded,
G: Clone + GenericInteger + Bounded,
impl<T, G> Bounded for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Bounded,
G: Clone + GenericInteger + Bounded,
impl<T, G> CheckedAdd for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedAdd,
G: Clone + GenericInteger + CheckedAdd,
impl<T, G> CheckedAdd for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedAdd,
G: Clone + GenericInteger + CheckedAdd,
Adds two numbers, checking for overflow. If overflow happens, None is
returned. Read more
impl<T, G> CheckedDiv for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedDiv,
G: Clone + GenericInteger + CheckedDiv,
impl<T, G> CheckedDiv for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedDiv,
G: Clone + GenericInteger + CheckedDiv,
Divides two numbers, checking for underflow, overflow and division by
zero. If any of that happens, None is returned. Read more
impl<T, G> CheckedMul for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedMul,
G: Clone + GenericInteger + CheckedMul,
impl<T, G> CheckedMul for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedMul,
G: Clone + GenericInteger + CheckedMul,
Multiplies two numbers, checking for underflow or overflow. If underflow
or overflow happens, None is returned. Read more
impl<T, G> CheckedSub for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedSub,
G: Clone + GenericInteger + CheckedSub,
impl<T, G> CheckedSub for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + CheckedSub,
G: Clone + GenericInteger + CheckedSub,
Subtracts two numbers, checking for underflow. If underflow happens,
None is returned. Read more
impl<T: Clone, G: Clone> Clone for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T: Clone, G: Clone> Clone for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T: Debug, G: Debug> Debug for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T: Debug, G: Debug> Debug for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Display for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Display,
G: Clone + GenericInteger + Display,
impl<T, G> Display for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Display,
G: Clone + GenericInteger + Display,
impl<'a, T, G> Div<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Div<Output = T> + CheckedDiv,
G: Clone + GenericInteger + Div<Output = G> + CheckedDiv,
&'a G: Div<G, Output = G> + Div<Output = G>,
impl<'a, T, G> Div<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Div<Output = T> + CheckedDiv,
G: Clone + GenericInteger + Div<Output = G> + CheckedDiv,
&'a G: Div<G, Output = G> + Div<Output = G>,
impl<'a, T, G> Div<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> Div<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Div<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Div<Output = T> + CheckedDiv,
G: Clone + GenericInteger + Div<Output = G> + CheckedDiv,
impl<T, G> Div<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Div<Output = T> + CheckedDiv,
G: Clone + GenericInteger + Div<Output = G> + CheckedDiv,
impl<'a, T, G> DivAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + DivAssign + CheckedDiv,
G: Clone + GenericInteger + DivAssign + CheckedDiv,
impl<'a, T, G> DivAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + DivAssign + CheckedDiv,
G: Clone + GenericInteger + DivAssign + CheckedDiv,
Performs the /= operation. Read more
impl<T, G> DivAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + DivAssign + CheckedDiv,
G: Clone + GenericInteger + DivAssign + CheckedDiv,
impl<T, G> DivAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + DivAssign + CheckedDiv,
G: Clone + GenericInteger + DivAssign + CheckedDiv,
Performs the /= operation. Read more
impl<T, G> From<BigUint> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + From<BigUint>,
impl<T, G> From<BigUint> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + From<BigUint>,
impl<T, G> From<DynaInt<T, G>> for BigUint where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + Into<BigUint>,
impl<T, G> From<DynaInt<T, G>> for BigUint where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + Into<BigUint>,
impl<T, G> From<u128> for DynaInt<T, G> where
u128: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u128> for DynaInt<T, G> where
u128: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u16> for DynaInt<T, G> where
u16: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u16> for DynaInt<T, G> where
u16: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u32> for DynaInt<T, G> where
u32: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u32> for DynaInt<T, G> where
u32: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u64> for DynaInt<T, G> where
u64: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u64> for DynaInt<T, G> where
u64: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u8> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<u8> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<usize> for DynaInt<T, G> where
usize: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> From<usize> for DynaInt<T, G> where
usize: GenericInteger + PartialOrd + Into<G>,
T: GenericInteger + Copy + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> GenericInteger for DynaInt<T, G> where
T: GenericInteger + Copy + Integer + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + 'static,
impl<T, G> GenericInteger for DynaInt<T, G> where
T: GenericInteger + Copy + Integer + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger + 'static,
Returns the sign and the value itself. Zero values must have Sign::Plus Read more
impl<T, G> Integer for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Integer for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
Returns true if self is a multiple of other. Read more
Simultaneous truncated integer division and modulus.
Returns (quotient, remainder). Read more
Greatest Common Divisor (GCD) and Lowest Common Multiple (LCM) together. Read more
Greatest common divisor and Bézout coefficients. Read more
fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self) where
Self: Clone + Signed,
fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self) where
Self: Clone + Signed,
Greatest common divisor, least common multiple, and Bézout coefficients.
Simultaneous floored integer division and modulus.
Returns (quotient, remainder). Read more
Rounds up to nearest multiple of argument. Read more
Rounds down to nearest multiple of argument. Read more
impl<'a, T, G> Mul<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Mul<Output = T> + CheckedMul,
G: Clone + GenericInteger + Mul<Output = G> + CheckedMul,
&'a G: Mul<G, Output = G> + Mul<Output = G>,
impl<'a, T, G> Mul<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Mul<Output = T> + CheckedMul,
G: Clone + GenericInteger + Mul<Output = G> + CheckedMul,
&'a G: Mul<G, Output = G> + Mul<Output = G>,
impl<'a, T, G> Mul<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> Mul<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Mul<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Mul<Output = T> + CheckedMul,
G: Clone + GenericInteger + Mul<Output = G> + CheckedMul,
impl<T, G> Mul<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Mul<Output = T> + CheckedMul,
G: Clone + GenericInteger + Mul<Output = G> + CheckedMul,
impl<'a, T, G> MulAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + MulAssign + CheckedMul,
G: Clone + GenericInteger + MulAssign + CheckedMul,
impl<'a, T, G> MulAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + MulAssign + CheckedMul,
G: Clone + GenericInteger + MulAssign + CheckedMul,
Performs the *= operation. Read more
impl<T, G> MulAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + MulAssign + CheckedMul,
G: Clone + GenericInteger + MulAssign + CheckedMul,
impl<T, G> MulAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + MulAssign + CheckedMul,
G: Clone + GenericInteger + MulAssign + CheckedMul,
Performs the *= operation. Read more
impl<T, G> Neg for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Neg<Output = T>,
G: Clone + GenericInteger + Neg<Output = G>,
impl<T, G> Neg for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Neg<Output = T>,
G: Clone + GenericInteger + Neg<Output = G>,
impl<T, G> Not for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Not<Output = T>,
G: Clone + GenericInteger + Not<Output = G>,
impl<T, G> Not for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Not<Output = T>,
G: Clone + GenericInteger + Not<Output = G>,
impl<T, G> Num for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Num,
G: Clone + GenericInteger,
impl<T, G> Num for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Num,
G: Clone + GenericInteger,
type FromStrRadixErr = <G as Num>::FromStrRadixErr
Convert from a string and radix (typically 2..=36). Read more
impl<T, G> One for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> One for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Ord for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Ord,
G: Clone + GenericInteger + Ord,
impl<T, G> Ord for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Ord,
G: Clone + GenericInteger + Ord,
impl<T, G> PartialEq<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + PartialEq,
G: Clone + GenericInteger + PartialEq,
impl<T, G> PartialEq<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + PartialEq,
G: Clone + GenericInteger + PartialEq,
impl<T, G> PartialOrd<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + PartialOrd,
G: Clone + GenericInteger + PartialOrd,
impl<T, G> PartialOrd<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + PartialOrd,
G: Clone + GenericInteger + PartialOrd,
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
impl<'a, T, G> Rem<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> Rem<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Rem<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Rem<Output = T>,
G: Clone + GenericInteger + Rem<Output = G>,
impl<T, G> Rem<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Rem<Output = T>,
G: Clone + GenericInteger + Rem<Output = G>,
impl<'a, T, G> RemAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> RemAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
Performs the %= operation. Read more
impl<T, G> RemAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + RemAssign,
G: Clone + GenericInteger + RemAssign,
impl<T, G> RemAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + RemAssign,
G: Clone + GenericInteger + RemAssign,
Performs the %= operation. Read more
impl<T, G> Shl<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Shl<Output = T>,
G: Clone + GenericInteger + Shl<Output = G>,
impl<T, G> Shl<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Shl<Output = T>,
G: Clone + GenericInteger + Shl<Output = G>,
Performs the <<= operation. Read more
impl<T, G> ShlAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ShlAssign,
G: Clone + GenericInteger + ShlAssign,
impl<T, G> ShlAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ShlAssign,
G: Clone + GenericInteger + ShlAssign,
Performs the <<= operation. Read more
impl<T, G> Shr<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Shr<Output = T>,
G: Clone + GenericInteger + Shr<Output = G>,
impl<T, G> Shr<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Shr<Output = T>,
G: Clone + GenericInteger + Shr<Output = G>,
Performs the >>= operation. Read more
impl<T, G> ShrAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ShrAssign,
G: Clone + GenericInteger + ShrAssign,
impl<T, G> ShrAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ShrAssign,
G: Clone + GenericInteger + ShrAssign,
Performs the >>= operation. Read more
impl<'a, T, G> Sub<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Sub<Output = T> + CheckedSub,
G: Clone + GenericInteger + Sub<Output = G> + CheckedSub,
&'a G: Sub<G, Output = G> + Sub<Output = G>,
impl<'a, T, G> Sub<&'a DynaInt<T, G>> for &'a DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Sub<Output = T> + CheckedSub,
G: Clone + GenericInteger + Sub<Output = G> + CheckedSub,
&'a G: Sub<G, Output = G> + Sub<Output = G>,
impl<'a, T, G> Sub<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<'a, T, G> Sub<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Sub<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Sub<Output = T> + CheckedSub,
G: Clone + GenericInteger + Sub<Output = G> + CheckedSub,
impl<T, G> Sub<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Sub<Output = T> + CheckedSub,
G: Clone + GenericInteger + Sub<Output = G> + CheckedSub,
impl<'a, T, G> SubAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + SubAssign + CheckedSub,
G: Clone + GenericInteger + SubAssign + CheckedSub,
impl<'a, T, G> SubAssign<&'a DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + SubAssign + CheckedSub,
G: Clone + GenericInteger + SubAssign + CheckedSub,
Performs the -= operation. Read more
impl<T, G> SubAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + SubAssign + CheckedSub,
G: Clone + GenericInteger + SubAssign + CheckedSub,
impl<T, G> SubAssign<DynaInt<T, G>> for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + SubAssign + CheckedSub,
G: Clone + GenericInteger + SubAssign + CheckedSub,
Performs the -= operation. Read more
impl<T, G> ToPrimitive for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ToPrimitive,
G: Clone + GenericInteger,
impl<T, G> ToPrimitive for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + ToPrimitive,
G: Clone + GenericInteger,
Converts the value of self to an i64. If the value cannot be
represented by an i64, then None is returned. Read more
Converts the value of self to a u64. If the value cannot be
represented by a u64, then None is returned. Read more
Converts the value of self to an isize. If the value cannot be
represented by an isize, then None is returned. Read more
Converts the value of self to an i8. If the value cannot be
represented by an i8, then None is returned. Read more
Converts the value of self to an i16. If the value cannot be
represented by an i16, then None is returned. Read more
Converts the value of self to an i32. If the value cannot be
represented by an i32, then None is returned. Read more
Converts the value of self to an i128. If the value cannot be
represented by an i128 (i64 under the default implementation), then
None is returned. Read more
Converts the value of self to a usize. If the value cannot be
represented by a usize, then None is returned. Read more
Converts the value of self to a u8. If the value cannot be
represented by a u8, then None is returned. Read more
Converts the value of self to a u16. If the value cannot be
represented by a u16, then None is returned. Read more
Converts the value of self to a u32. If the value cannot be
represented by a u32, then None is returned. Read more
Converts the value of self to a u128. If the value cannot be
represented by a u128 (u64 under the default implementation), then
None is returned. Read more
Converts the value of self to an f32. Overflows may map to positive
or negative inifinity, otherwise None is returned if the value cannot
be represented by an f32. Read more
impl<T, G> Zero for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Zero for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Clone + GenericInteger,
impl<T, G> Copy for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
G: Copy + GenericInteger,
impl<T, G> Eq for DynaInt<T, G> where
T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8> + Eq,
G: Clone + GenericInteger + Eq,
Auto Trait Implementations
impl<T, G> RefUnwindSafe for DynaInt<T, G> where
G: RefUnwindSafe,
T: RefUnwindSafe,
impl<T, G> UnwindSafe for DynaInt<T, G> where
G: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.
type Output = T
type Output = T
Should always be Self