# [−] [src] Module typenum::operator_aliases

Aliases for the type operators used in this crate. Their purpose is to increase the ergonomics of performing operations on the types defined here. For even more ergonomics, consider using the `op!` macro instead.

For example, type `X` and type `Y` are the same here:

    use std::ops::Mul;
    use typenum::{Prod, P5, P7};

    type X = <P7 as Mul<P5>>::Output;
    type Y = Prod<P7, P5>;

    assert_type_eq!(X, Y);

## Type Definitions

AbsVal | Alias for the associated type of `Abs`: `AbsVal<A> = <A as Abs>::Output`
Add1 | Alias to make it easy to add 1: `Add1<A> = <A as Add<B1>>::Output`
And | Alias for the associated type of `BitAnd`: `And<A, B> = <A as BitAnd<B>>::Output`
Compare | Alias for the associated type of `Cmp`: `Compare<A, B> = <A as Cmp<B>>::Output`
Cube | Alias to make it easy to cube. `Cube<A> = <Square<A> as Mul<A>>::Output`
Diff | Alias for the associated type of `Sub`: `Diff<A, B> = <A as Sub<B>>::Output`
Double | Alias to make it easy to multiply by 2. `Double<A> = Shleft<A, B1>`
Eq | Alias for the associated type of `IsEqual`: `Eq<A, B> = <A as IsEqual<B>>::Output`
Exp | Alias for the associated type of `Pow`: `Exp<A, B> = <A as Pow<B>>::Output`
Gcf | Alias for the associated type of `Gcd`: `Gcf<A, B> = <A as Gcd<B>>::Output>`
Gr | Alias for the associated type of `IsGreater`: `Gr<A, B> = <A as IsGreater<B>>::Output`
GrEq | Alias for the associated type of `IsGreaterOrEqual`: `GrEq<A, B> = <A as IsGreaterOrEqual<B>>::Output`
Le | Alias for the associated type of `IsLess`: `Le<A, B> = <A as IsLess<B>>::Output`
LeEq | Alias for the associated type of `IsLessOrEqual`: `LeEq<A, B> = <A as IsLessOrEqual<B>>::Output`
Length | Alias for the associated type of `Len`: `Length<A> = <A as Len>::Output`
Log2 | Alias for the associated type of `Logarithm2`: `Log2<A> = <A as Logarithm2>::Output`
Maximum | Alias for the associated type of `Max`: `Maximum<A, B> = <A as Max<B>>::Output`
Minimum | Alias for the associated type of `Min`: `Minimum<A, B> = <A as Min<B>>::Output`
Mod | Alias for the associated type of `Rem`: `Mod<A, B> = <A as Rem<B>>::Output`
Negate | Alias for the associated type of `Neg`: `Negate<A> = <A as Neg>::Output`
NotEq | Alias for the associated type of `IsNotEqual`: `NotEq<A, B> = <A as IsNotEqual<B>>::Output`
Or | Alias for the associated type of `BitOr`: `Or<A, B> = <A as BitOr<B>>::Output`
PartialQuot | Alias for the associated type of `PartialDiv`: `PartialQuot<A, B> = <A as PartialDiv<B>>::Output`
Prod | Alias for the associated type of `Mul`: `Prod<A, B> = <A as Mul<B>>::Output`
Quot | Alias for the associated type of `Div`: `Quot<A, B> = <A as Div<B>>::Output`
Shleft | Alias for the associated type of `Shl`: `Shleft<A, B> = <A as Shl<B>>::Output`
Shright | Alias for the associated type of `Shr`: `Shright<A, B> = <A as Shr<B>>::Output`
Sqrt | Alias for the associated type of `SquareRoot`: `Sqrt<A> = <A as SquareRoot>::Output`
Square | Alias to make it easy to square. `Square<A> = <A as Mul<A>>::Output`
Sub1 | Alias to make it easy to subtract 1: `Sub1<A> = <A as Sub<B1>>::Output`
Sum | Alias for the associated type of `Add`: `Sum<A, B> = <A as Add<B>>::Output`
Xor | Alias for the associated type of `BitXor`: `Xor<A, B> = <A as BitXor<B>>::Output`