Struct typenum::int::NInt
[−]
[src]
pub struct NInt<U: Unsigned + NonZero> { // some fields omitted }
Type-level signed integers with negative sign.
Trait Implementations
impl<U: Unsigned + NonZero> NonZero for NInt<U>
impl<U: Unsigned + NonZero> Integer for NInt<U>
impl<U: Unsigned + NonZero> Neg for NInt<U>
-NInt = PInt
impl<U: Unsigned + NonZero> Add<Z0> for NInt<U>
NInt + Z0 = NInt
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Add<NInt<Ur>> for NInt<Ul> where Ul: Add<Ur>, Ul::Output: Unsigned + NonZero
N(Ul) + N(Ur) = N(Ul + Ur)
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Add<PInt<Ur>> for NInt<Ul> where Ur: Cmp<Ul> + PrivateIntegerAdd<Ur::Output, Ul>
P(Ul) + P(Ur)
: We resolve this with our PrivateAdd
impl<U: Unsigned + NonZero> Sub<Z0> for NInt<U>
NInt - Z0 = NInt
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Sub<PInt<Ur>> for NInt<Ul> where Ul: Add<Ur>, Ul::Output: Unsigned + NonZero
N(Ul) - P(Ur) = N(Ul + Ur)
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Sub<NInt<Ur>> for NInt<Ul> where Ur: Cmp<Ul> + PrivateIntegerAdd<Ur::Output, Ul>
N(Ul) - N(Ur)
: We resolve this with our PrivateAdd
impl<U: Unsigned + NonZero> Mul<Z0> for NInt<U>
N * Z0 = Z0
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Mul<NInt<Ur>> for NInt<Ul> where Ul: Mul<Ur>, Ul::Output: Unsigned + NonZero
N(Ul) * N(Ur) = P(Ul * Ur)
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Mul<PInt<Ur>> for NInt<Ul> where Ul: Mul<Ur>, Ul::Output: Unsigned + NonZero
N(Ul) * P(Ur) = N(Ul * Ur)
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Div<PInt<Ur>> for NInt<Ul> where Ul: Cmp<Ur>, NInt<Ul>: PrivateDivInt<Ul::Output, PInt<Ur>>
$A<Ul> / $B<Ur> = $R<Ul / Ur>
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Div<NInt<Ur>> for NInt<Ul> where Ul: Cmp<Ur>, NInt<Ul>: PrivateDivInt<Ul::Output, NInt<Ur>>
$A<Ul> / $B<Ur> = $R<Ul / Ur>
impl<U: Unsigned + NonZero> Cmp<Z0> for NInt<U>
-X < 0
type Output = Less
impl<P: Unsigned + NonZero, N: Unsigned + NonZero> Cmp<PInt<P>> for NInt<N>
-X < Y
type Output = Less
impl<Nl: Unsigned + NonZero, Nr: Cmp<Nl> + Unsigned + NonZero> Cmp<NInt<Nr>> for NInt<Nl>
-X <==> -Y
type Output = Nr::Output
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Rem<PInt<Ur>> for NInt<Ul> where Ul: Rem<Ur>, NInt<Ul>: PrivateRem<Ul::Output, PInt<Ur>>
$A<Ul> % $B<Ur> = $R<Ul % Ur>
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Rem<NInt<Ur>> for NInt<Ul> where Ul: Rem<Ur>, NInt<Ul>: PrivateRem<Ul::Output, NInt<Ur>>
$A<Ul> % $B<Ur> = $R<Ul % Ur>
impl<U: Unsigned + NonZero> Pow<Z0> for NInt<U>
N0 = 1
type Output = P1
impl<Ul: Unsigned + NonZero, Ur: Unsigned> Pow<PInt<UInt<Ur, B0>>> for NInt<Ul> where Ul: Pow<UInt<Ur, B0>>, Ul::Output: Unsigned + NonZero
N(Ul)P(Ur) = P(UlUr) if Ur is even
type Output = PInt<Ul::Output>
impl<Ul: Unsigned + NonZero, Ur: Unsigned> Pow<PInt<UInt<Ur, B1>>> for NInt<Ul> where Ul: Pow<UInt<Ur, B1>>, Ul::Output: Unsigned + NonZero
N(Ul)P(Ur) = N(UlUr) if Ur is odd