Struct generic_arrayvec::typenum::uint::UInt [−]
pub struct UInt<U, B> { /* fields omitted */ }UInt is defined recursively, where B is the least significant bit and U is the rest
of the number. Conceptually, U should be bound by the trait Unsigned and B should
be bound by the trait Bit, but enforcing these bounds causes linear instead of
logrithmic scaling in some places, so they are left off for now. They may be enforced in
future.
In order to keep numbers unique, leading zeros are not allowed, so UInt<UTerm, B0> is
forbidden.
Example
use typenum::{B0, B1, UInt, UTerm}; type U6 = UInt<UInt<UInt<UTerm, B1>, B1>, B0>;
Methods
impl<U, B> UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> UInt<U, B> where
B: Bit,
U: Unsigned, Trait Implementations
impl<T, N> ArrayLength<T> for UInt<N, B1> where
N: ArrayLength<T>, [src]
impl<T, N> ArrayLength<T> for UInt<N, B1> where
N: ArrayLength<T>, type ArrayType
Associated type representing the array type for the number
impl<T, N> ArrayLength<T> for UInt<N, B0> where
N: ArrayLength<T>, [src]
impl<T, N> ArrayLength<T> for UInt<N, B0> where
N: ArrayLength<T>, type ArrayType
Associated type representing the array type for the number
impl<U, B> Pow<UInt<U, B>> for i32 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for i32 where
B: Bit,
U: Unsigned, type Output = i32
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <i32 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <i32 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for f64 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for f64 where
B: Bit,
U: Unsigned, type Output = f64
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <f64 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <f64 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for i8 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for i8 where
B: Bit,
U: Unsigned, type Output = i8
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <i8 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <i8 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for f32 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for f32 where
B: Bit,
U: Unsigned, type Output = f32
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <f32 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <f32 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for usize where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for usize where
B: Bit,
U: Unsigned, type Output = usize
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <usize as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for isize where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for isize where
B: Bit,
U: Unsigned, type Output = isize
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <isize as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <isize as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for i64 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for i64 where
B: Bit,
U: Unsigned, type Output = i64
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <i64 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <i64 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for i16 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for i16 where
B: Bit,
U: Unsigned, type Output = i16
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <i16 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <i16 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for u64 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for u64 where
B: Bit,
U: Unsigned, type Output = u64
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <u64 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <u64 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for u32 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for u32 where
B: Bit,
U: Unsigned, type Output = u32
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <u32 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <u32 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for u8 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for u8 where
B: Bit,
U: Unsigned, type Output = u8
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <u8 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <u8 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> Pow<UInt<U, B>> for u16 where
B: Bit,
U: Unsigned,
impl<U, B> Pow<UInt<U, B>> for u16 where
B: Bit,
U: Unsigned, type Output = u16
The result of the exponentiation.
fn powi(self, UInt<U, B>) -> <u16 as Pow<UInt<U, B>>>::Output
fn powi(self, UInt<U, B>) -> <u16 as Pow<UInt<U, B>>>::OutputThis function isn't used in this crate, but may be useful for others. It is implemented for primitives. Read more
impl<U, B> NonZero for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> NonZero for UInt<U, B> where
B: Bit,
U: Unsigned, impl<U, B> Hash for UInt<U, B> where
B: Hash,
U: Hash,
impl<U, B> Hash for UInt<U, B> where
B: Hash,
U: Hash, fn hash<__HUB>(&self, state: &mut __HUB) where
__HUB: Hasher,
fn hash<__HUB>(&self, state: &mut __HUB) where
__HUB: Hasher, Feeds this value into the given [Hasher]. Read more
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, 1.3.0[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher, Feeds a slice of this type into the given [Hasher]. Read more
impl<U, B> PartialOrd<UInt<U, B>> for UInt<U, B> where
B: PartialOrd<B>,
U: PartialOrd<U>,
impl<U, B> PartialOrd<UInt<U, B>> for UInt<U, B> where
B: PartialOrd<B>,
U: PartialOrd<U>, fn partial_cmp(&self, other: &UInt<U, B>) -> Option<Ordering>
fn partial_cmp(&self, other: &UInt<U, B>) -> Option<Ordering>This method returns an ordering between self and other values if one exists. Read more
fn lt(&self, other: &UInt<U, B>) -> bool
fn lt(&self, other: &UInt<U, B>) -> boolThis method tests less than (for self and other) and is used by the < operator. Read more
fn le(&self, other: &UInt<U, B>) -> bool
fn le(&self, other: &UInt<U, B>) -> boolThis method tests less than or equal to (for self and other) and is used by the <= operator. Read more
fn gt(&self, other: &UInt<U, B>) -> bool
fn gt(&self, other: &UInt<U, B>) -> boolThis method tests greater than (for self and other) and is used by the > operator. Read more
fn ge(&self, other: &UInt<U, B>) -> bool
fn ge(&self, other: &UInt<U, B>) -> boolThis method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateAnd<Ur>,
<UInt<Ul, Bl> as PrivateAnd<Ur>>::Output: Trim,
impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateAnd<Ur>,
<UInt<Ul, Bl> as PrivateAnd<Ur>>::Output: Trim, Anding unsigned integers.
We use our PrivateAnd operator and then Trim the output.
type Output = <<UInt<Ul, Bl> as PrivateAnd<Ur>>::Output as Trim>::Output
The resulting type after applying the & operator.
fn bitand(self, Ur) -> <UInt<Ul, Bl> as BitAnd<Ur>>::Output
fn bitand(self, Ur) -> <UInt<Ul, Bl> as BitAnd<Ur>>::OutputPerforms the & operation.
impl<Ul, Bl, Ur, Br> Div<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Len,
<UInt<Ul, Bl> as Len>::Output: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>,
impl<Ul, Bl, Ur, Br> Div<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Len,
<UInt<Ul, Bl> as Len>::Output: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>, type Output = <() as PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>>::Quotient
The resulting type after applying the / operator.
fn div(self, UInt<Ur, Br>) -> <UInt<Ul, Bl> as Div<UInt<Ur, Br>>>::Output
fn div(self, UInt<Ur, Br>) -> <UInt<Ul, Bl> as Div<UInt<Ur, Br>>>::OutputPerforms the / operation.
impl<Ur, Br> Div<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned,
impl<Ur, Br> Div<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned, type Output = UTerm
The resulting type after applying the / operator.
fn div(self, UInt<Ur, Br>) -> <UTerm as Div<UInt<Ur, Br>>>::Output
fn div(self, UInt<Ur, Br>) -> <UTerm as Div<UInt<Ur, Br>>>::OutputPerforms the / operation.
impl<U, B> Default for UInt<U, B> where
B: Default,
U: Default,
impl<U, B> Default for UInt<U, B> where
B: Default,
U: Default, impl<Ul, Bl, Ur, Br> Rem<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Len,
<UInt<Ul, Bl> as Len>::Output: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>,
impl<Ul, Bl, Ur, Br> Rem<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Len,
<UInt<Ul, Bl> as Len>::Output: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>, type Output = <() as PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, UTerm, UTerm, <<UInt<Ul, Bl> as Len>::Output as Sub<B1>>::Output>>::Remainder
The resulting type after applying the % operator.
fn rem(self, UInt<Ur, Br>) -> <UInt<Ul, Bl> as Rem<UInt<Ur, Br>>>::Output
fn rem(self, UInt<Ur, Br>) -> <UInt<Ul, Bl> as Rem<UInt<Ur, Br>>>::OutputPerforms the % operation.
impl<Ur, Br> Rem<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned,
impl<Ur, Br> Rem<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned, type Output = UTerm
The resulting type after applying the % operator.
fn rem(self, UInt<Ur, Br>) -> <UTerm as Rem<UInt<Ur, Br>>>::Output
fn rem(self, UInt<Ur, Br>) -> <UTerm as Rem<UInt<Ur, Br>>>::OutputPerforms the % operation.
impl<U, B, Ur> Max<Ur> for UInt<U, B> where
B: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur>,
UInt<U, B>: PrivateMax<Ur, <UInt<U, B> as Cmp<Ur>>::Output>,
impl<U, B, Ur> Max<Ur> for UInt<U, B> where
B: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur>,
UInt<U, B>: PrivateMax<Ur, <UInt<U, B> as Cmp<Ur>>::Output>, type Output = <UInt<U, B> as PrivateMax<Ur, <UInt<U, B> as Cmp<Ur>>::Output>>::Output
The type of the maximum of Self and Rhs
fn max(self, rhs: Ur) -> <UInt<U, B> as Max<Ur>>::Output
fn max(self, rhs: Ur) -> <UInt<U, B> as Max<Ur>>::OutputMethod returning the maximum
impl<U, B, Ur> Min<Ur> for UInt<U, B> where
B: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur>,
UInt<U, B>: PrivateMin<Ur, <UInt<U, B> as Cmp<Ur>>::Output>,
impl<U, B, Ur> Min<Ur> for UInt<U, B> where
B: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur>,
UInt<U, B>: PrivateMin<Ur, <UInt<U, B> as Cmp<Ur>>::Output>, type Output = <UInt<U, B> as PrivateMin<Ur, <UInt<U, B> as Cmp<Ur>>::Output>>::Output
The type of the minimum of Self and Rhs
fn min(self, rhs: Ur) -> <UInt<U, B> as Min<Ur>>::Output
fn min(self, rhs: Ur) -> <UInt<U, B> as Min<Ur>>::OutputMethod returning the minimum
impl<Un, Bn> GetBit<UTerm> for UInt<Un, Bn>
impl<Un, Bn> GetBit<UTerm> for UInt<Un, Bn>type Output = Bn
impl<Un, Bn, Ui, Bi> GetBit<UInt<Ui, Bi>> for UInt<Un, Bn> where
Un: GetBit<<UInt<Ui, Bi> as Sub<B1>>::Output>,
UInt<Ui, Bi>: Sub<B1>,
impl<Un, Bn, Ui, Bi> GetBit<UInt<Ui, Bi>> for UInt<Un, Bn> where
Un: GetBit<<UInt<Ui, Bi> as Sub<B1>>::Output>,
UInt<Ui, Bi>: Sub<B1>, impl<Ur, Br> PartialDiv<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned,
impl<Ur, Br> PartialDiv<UInt<Ur, Br>> for UTerm where
Br: Bit,
Ur: Unsigned, type Output = UTerm
The type of the result of the division
fn partial_div(
self,
UInt<Ur, Br>
) -> <UTerm as PartialDiv<UInt<Ur, Br>>>::Output
fn partial_div(
self,
UInt<Ur, Br>
) -> <UTerm as PartialDiv<UInt<Ur, Br>>>::OutputMethod for performing the division
impl<Ul, Bl, Ur, Br> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Div<UInt<Ur, Br>>,
UInt<Ul, Bl>: Rem<UInt<Ur, Br>>,
<UInt<Ul, Bl> as Rem<UInt<Ur, Br>>>::Output == UTerm,
impl<Ul, Bl, Ur, Br> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl> where
Bl: Bit,
Br: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: Div<UInt<Ur, Br>>,
UInt<Ul, Bl>: Rem<UInt<Ur, Br>>,
<UInt<Ul, Bl> as Rem<UInt<Ur, Br>>>::Output == UTerm, type Output = <UInt<Ul, Bl> as Div<UInt<Ur, Br>>>::Output
The type of the result of the division
fn partial_div(
self,
UInt<Ur, Br>
) -> <UInt<Ul, Bl> as PartialDiv<UInt<Ur, Br>>>::Output
fn partial_div(
self,
UInt<Ur, Br>
) -> <UInt<Ul, Bl> as PartialDiv<UInt<Ur, Br>>>::OutputMethod for performing the division
impl<U, B> Len for UInt<U, B> where
B: Bit,
U: Unsigned + Len,
<U as Len>::Output: Add<B1>,
<<U as Len>::Output as Add<B1>>::Output: Unsigned,
impl<U, B> Len for UInt<U, B> where
B: Bit,
U: Unsigned + Len,
<U as Len>::Output: Add<B1>,
<<U as Len>::Output as Add<B1>>::Output: Unsigned, Length of a bit is 1
type Output = <<U as Len>::Output as Add<B1>>::Output
The length as a type-level unsigned integer.
fn len(&self) -> <UInt<U, B> as Len>::Output
fn len(&self) -> <UInt<U, B> as Len>::OutputThis function isn't used in this crate, but may be useful for others.
impl<U, B> Shl<B0> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shl<B0> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting left any unsigned by a zero bit: U << B0 = U
type Output = UInt<U, B>
The resulting type after applying the << operator.
fn shl(self, B0) -> <UInt<U, B> as Shl<B0>>::Output
fn shl(self, B0) -> <UInt<U, B> as Shl<B0>>::OutputPerforms the << operation.
impl<U, B, Ur, Br> Shl<UInt<Ur, Br>> for UInt<U, B> where
B: Bit,
Br: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<Ur, Br>: Sub<B1>,
UInt<UInt<U, B>, B0>: Shl<<UInt<Ur, Br> as Sub<B1>>::Output>,
impl<U, B, Ur, Br> Shl<UInt<Ur, Br>> for UInt<U, B> where
B: Bit,
Br: Bit,
U: Unsigned,
Ur: Unsigned,
UInt<Ur, Br>: Sub<B1>,
UInt<UInt<U, B>, B0>: Shl<<UInt<Ur, Br> as Sub<B1>>::Output>, Shifting left UInt by UInt: X << Y = UInt(X, B0) << (Y - 1)
type Output = <UInt<UInt<U, B>, B0> as Shl<<UInt<Ur, Br> as Sub<B1>>::Output>>::Output
The resulting type after applying the << operator.
fn shl(self, UInt<Ur, Br>) -> <UInt<U, B> as Shl<UInt<Ur, Br>>>::Output
fn shl(self, UInt<Ur, Br>) -> <UInt<U, B> as Shl<UInt<Ur, Br>>>::OutputPerforms the << operation.
impl<U, B> Shl<B1> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shl<B1> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting left a UInt by a one bit: UInt<U, B> << B1 = UInt<UInt<U, B>, B0>
type Output = UInt<UInt<U, B>, B0>
The resulting type after applying the << operator.
fn shl(self, B1) -> <UInt<U, B> as Shl<B1>>::Output
fn shl(self, B1) -> <UInt<U, B> as Shl<B1>>::OutputPerforms the << operation.
impl<U, B> Shl<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shl<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting left UInt by UTerm: UInt<U, B> << UTerm = UInt<U, B>
type Output = UInt<U, B>
The resulting type after applying the << operator.
fn shl(self, UTerm) -> <UInt<U, B> as Shl<UTerm>>::Output
fn shl(self, UTerm) -> <UInt<U, B> as Shl<UTerm>>::OutputPerforms the << operation.
impl<U, B> Ord for UInt<U, B> where
B: Ord,
U: Ord,
impl<U, B> Ord for UInt<U, B> where
B: Ord,
U: Ord, fn cmp(&self, other: &UInt<U, B>) -> Ordering
fn cmp(&self, other: &UInt<U, B>) -> OrderingThis method returns an Ordering between self and other. Read more
fn max(self, other: Self) -> Self1.21.0[src]
fn max(self, other: Self) -> SelfCompares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self1.21.0[src]
fn min(self, other: Self) -> SelfCompares and returns the minimum of two values. Read more
impl<U, B> Mul<B0> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Mul<B0> for UInt<U, B> where
B: Bit,
U: Unsigned, UInt * B0 = UTerm
type Output = UTerm
The resulting type after applying the * operator.
fn mul(self, B0) -> <UInt<U, B> as Mul<B0>>::Output
fn mul(self, B0) -> <UInt<U, B> as Mul<B0>>::OutputPerforms the * operation.
impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B1> where
B: Bit,
Ul: Unsigned + Mul<UInt<Ur, B>>,
Ur: Unsigned,
UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0>: Add<UInt<Ur, B>>,
impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B1> where
B: Bit,
Ul: Unsigned + Mul<UInt<Ur, B>>,
Ur: Unsigned,
UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0>: Add<UInt<Ur, B>>, UInt<Ul, B1> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0> + UInt<Ur, B>
type Output = <UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0> as Add<UInt<Ur, B>>>::Output
The resulting type after applying the * operator.
fn mul(self, UInt<Ur, B>) -> <UInt<Ul, B1> as Mul<UInt<Ur, B>>>::Output
fn mul(self, UInt<Ur, B>) -> <UInt<Ul, B1> as Mul<UInt<Ur, B>>>::OutputPerforms the * operation.
impl<U, B> Mul<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Mul<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, UInt<U, B> * UTerm = UTerm
type Output = UTerm
The resulting type after applying the * operator.
fn mul(self, UTerm) -> <UInt<U, B> as Mul<UTerm>>::Output
fn mul(self, UTerm) -> <UInt<U, B> as Mul<UTerm>>::OutputPerforms the * operation.
impl<U, B> Mul<B1> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Mul<B1> for UInt<U, B> where
B: Bit,
U: Unsigned, UInt * B1 = UInt
type Output = UInt<U, B>
The resulting type after applying the * operator.
fn mul(self, B1) -> <UInt<U, B> as Mul<B1>>::Output
fn mul(self, B1) -> <UInt<U, B> as Mul<B1>>::OutputPerforms the * operation.
impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B0> where
B: Bit,
Ul: Unsigned + Mul<UInt<Ur, B>>,
Ur: Unsigned,
impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B0> where
B: Bit,
Ul: Unsigned + Mul<UInt<Ur, B>>,
Ur: Unsigned, UInt<Ul, B0> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0>
type Output = UInt<<Ul as Mul<UInt<Ur, B>>>::Output, B0>
The resulting type after applying the * operator.
fn mul(self, UInt<Ur, B>) -> <UInt<Ul, B0> as Mul<UInt<Ur, B>>>::Output
fn mul(self, UInt<Ur, B>) -> <UInt<Ul, B0> as Mul<UInt<Ur, B>>>::OutputPerforms the * operation.
impl<U> PowerOfTwo for UInt<U, B0> where
U: Unsigned + PowerOfTwo,
impl<U> PowerOfTwo for UInt<U, B0> where
U: Unsigned + PowerOfTwo, impl PowerOfTwo for UInt<UTerm, B1>
impl PowerOfTwo for UInt<UTerm, B1>impl<U, B> Debug for UInt<U, B> where
B: Debug,
U: Debug,
impl<U, B> Debug for UInt<U, B> where
B: Debug,
U: Debug, fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>Formats the value using the given formatter. Read more
impl<U, B, Ur, Br> Shr<UInt<Ur, Br>> for UInt<U, B> where
B: Bit,
Br: Bit,
U: Unsigned + Shr<<UInt<Ur, Br> as Sub<B1>>::Output>,
Ur: Unsigned,
UInt<Ur, Br>: Sub<B1>,
impl<U, B, Ur, Br> Shr<UInt<Ur, Br>> for UInt<U, B> where
B: Bit,
Br: Bit,
U: Unsigned + Shr<<UInt<Ur, Br> as Sub<B1>>::Output>,
Ur: Unsigned,
UInt<Ur, Br>: Sub<B1>, Shifting right UInt by UInt: UInt(U, B) >> Y = U >> (Y - 1)
type Output = <U as Shr<<UInt<Ur, Br> as Sub<B1>>::Output>>::Output
The resulting type after applying the >> operator.
fn shr(self, UInt<Ur, Br>) -> <UInt<U, B> as Shr<UInt<Ur, Br>>>::Output
fn shr(self, UInt<Ur, Br>) -> <UInt<U, B> as Shr<UInt<Ur, Br>>>::OutputPerforms the >> operation.
impl<U, B> Shr<B1> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shr<B1> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting right a UInt by a 1 bit: UInt<U, B> >> B1 = U
type Output = U
The resulting type after applying the >> operator.
fn shr(self, B1) -> <UInt<U, B> as Shr<B1>>::Output
fn shr(self, B1) -> <UInt<U, B> as Shr<B1>>::OutputPerforms the >> operation.
impl<U, B> Shr<B0> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shr<B0> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting right any unsigned by a zero bit: U >> B0 = U
type Output = UInt<U, B>
The resulting type after applying the >> operator.
fn shr(self, B0) -> <UInt<U, B> as Shr<B0>>::Output
fn shr(self, B0) -> <UInt<U, B> as Shr<B0>>::OutputPerforms the >> operation.
impl<U, B> Shr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Shr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, Shifting right UInt by UTerm: UInt<U, B> >> UTerm = UInt<U, B>
type Output = UInt<U, B>
The resulting type after applying the >> operator.
fn shr(self, UTerm) -> <UInt<U, B> as Shr<UTerm>>::Output
fn shr(self, UTerm) -> <UInt<U, B> as Shr<UTerm>>::OutputPerforms the >> operation.
impl<U, B> Clone for UInt<U, B> where
B: Clone,
U: Clone,
impl<U, B> Clone for UInt<U, B> where
B: Clone,
U: Clone, fn clone(&self) -> UInt<U, B>
fn clone(&self) -> UInt<U, B>Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl<U, B> Sub<B1> for UInt<UInt<U, B>, B1> where
B: Bit,
U: Unsigned,
impl<U, B> Sub<B1> for UInt<UInt<U, B>, B1> where
B: Bit,
U: Unsigned, UInt<U, B1> - B1 = UInt<U, B0>
type Output = UInt<UInt<U, B>, B0>
The resulting type after applying the - operator.
fn sub(self, B1) -> <UInt<UInt<U, B>, B1> as Sub<B1>>::Output
fn sub(self, B1) -> <UInt<UInt<U, B>, B1> as Sub<B1>>::OutputPerforms the - operation.
impl<U> Sub<B1> for UInt<U, B0> where
U: Unsigned + Sub<B1>,
<U as Sub<B1>>::Output: Unsigned,
impl<U> Sub<B1> for UInt<U, B0> where
U: Unsigned + Sub<B1>,
<U as Sub<B1>>::Output: Unsigned, UInt<U, B0> - B1 = UInt<U - B1, B1>
type Output = UInt<<U as Sub<B1>>::Output, B1>
The resulting type after applying the - operator.
fn sub(self, B1) -> <UInt<U, B0> as Sub<B1>>::Output
fn sub(self, B1) -> <UInt<U, B0> as Sub<B1>>::OutputPerforms the - operation.
impl<U, B> Sub<B0> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Sub<B0> for UInt<U, B> where
B: Bit,
U: Unsigned, UInt - B0 = UInt
type Output = UInt<U, B>
The resulting type after applying the - operator.
fn sub(self, B0) -> <UInt<U, B> as Sub<B0>>::Output
fn sub(self, B0) -> <UInt<U, B> as Sub<B0>>::OutputPerforms the - operation.
impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateSub<Ur>,
<UInt<Ul, Bl> as PrivateSub<Ur>>::Output: Trim,
impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateSub<Ur>,
<UInt<Ul, Bl> as PrivateSub<Ur>>::Output: Trim, Subtracting unsigned integers. We just do our PrivateSub and then Trim the output.
type Output = <<UInt<Ul, Bl> as PrivateSub<Ur>>::Output as Trim>::Output
The resulting type after applying the - operator.
fn sub(self, Ur) -> <UInt<Ul, Bl> as Sub<Ur>>::Output
fn sub(self, Ur) -> <UInt<Ul, Bl> as Sub<Ur>>::OutputPerforms the - operation.
impl Sub<B1> for UInt<UTerm, B1>
impl Sub<B1> for UInt<UTerm, B1>UInt<UTerm, B1> - B1 = UTerm
type Output = UTerm
The resulting type after applying the - operator.
fn sub(self, B1) -> <UInt<UTerm, B1> as Sub<B1>>::Output
fn sub(self, B1) -> <UInt<UTerm, B1> as Sub<B1>>::OutputPerforms the - operation.
impl<U, B> Unsigned for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Unsigned for UInt<U, B> where
B: Bit,
U: Unsigned, const U8: u8
U8: u8 = <B>::U8 | <U>::U8 << 1
const U16: u16
U16: u16 = <B>::U8 as u16 | <U>::U16 << 1
const U32: u32
U32: u32 = <B>::U8 as u32 | <U>::U32 << 1
const U64: u64
U64: u64 = <B>::U8 as u64 | <U>::U64 << 1
const USIZE: usize
USIZE: usize = <B>::U8 as usize | <U>::USIZE << 1
const I8: i8
I8: i8 = <B>::U8 as i8 | <U>::I8 << 1
const I16: i16
I16: i16 = <B>::U8 as i16 | <U>::I16 << 1
const I32: i32
I32: i32 = <B>::U8 as i32 | <U>::I32 << 1
const I64: i64
I64: i64 = <B>::U8 as i64 | <U>::I64 << 1
const ISIZE: isize
ISIZE: isize = <B>::U8 as isize | <U>::ISIZE << 1
fn to_u8() -> u8
fn to_u8() -> u8fn to_u16() -> u16
fn to_u16() -> u16fn to_u32() -> u32
fn to_u32() -> u32fn to_u64() -> u64
fn to_u64() -> u64fn to_usize() -> usize
fn to_usize() -> usizefn to_i8() -> i8
fn to_i8() -> i8fn to_i16() -> i16
fn to_i16() -> i16fn to_i32() -> i32
fn to_i32() -> i32fn to_i64() -> i64
fn to_i64() -> i64fn to_isize() -> isize
fn to_isize() -> isizeimpl<U, B> PartialEq<UInt<U, B>> for UInt<U, B> where
B: PartialEq<B>,
U: PartialEq<U>,
impl<U, B> PartialEq<UInt<U, B>> for UInt<U, B> where
B: PartialEq<B>,
U: PartialEq<U>, fn eq(&self, other: &UInt<U, B>) -> bool
fn eq(&self, other: &UInt<U, B>) -> boolThis method tests for self and other values to be equal, and is used by ==. Read more
fn ne(&self, other: &UInt<U, B>) -> bool
fn ne(&self, other: &UInt<U, B>) -> boolThis method tests for !=.
impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + PrivateCmp<Ur, Equal>,
Ur: Unsigned,
impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + PrivateCmp<Ur, Equal>,
Ur: Unsigned, UInt<Ul, B0> cmp with UInt<Ur, B0>: SoFar is Equal
type Output = <Ul as PrivateCmp<Ur, Equal>>::Output
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<U, B> Cmp<UInt<U, B>> for UTerm where
B: Bit,
U: Unsigned,
impl<U, B> Cmp<UInt<U, B>> for UTerm where
B: Bit,
U: Unsigned, Zero < Nonzero
type Output = Less
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + PrivateCmp<Ur, Less>,
Ur: Unsigned,
impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + PrivateCmp<Ur, Less>,
Ur: Unsigned, UInt<Ul, B0> cmp with UInt<Ur, B1>: SoFar is Less
type Output = <Ul as PrivateCmp<Ur, Less>>::Output
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + PrivateCmp<Ur, Greater>,
Ur: Unsigned,
impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + PrivateCmp<Ur, Greater>,
Ur: Unsigned, UInt<Ul, B1> cmp with UInt<Ur, B0>: SoFar is Greater
type Output = <Ul as PrivateCmp<Ur, Greater>>::Output
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<U, B> Cmp<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Cmp<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, Nonzero > Zero
type Output = Greater
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + PrivateCmp<Ur, Equal>,
Ur: Unsigned,
impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + PrivateCmp<Ur, Equal>,
Ur: Unsigned, UInt<Ul, B1> cmp with UInt<Ur, B1>: SoFar is Equal
type Output = <Ul as PrivateCmp<Ur, Equal>>::Output
The result of the comparison. It should only ever be one of Greater, Less, or Equal.
impl<U, B> Eq for UInt<U, B> where
B: Eq,
U: Eq,
impl<U, B> Eq for UInt<U, B> where
B: Eq,
U: Eq, impl<U, B> Copy for UInt<U, B> where
B: Copy,
U: Copy,
impl<U, B> Copy for UInt<U, B> where
B: Copy,
U: Copy, impl<Ul, Bl, Ur> BitXor<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateXor<Ur>,
<UInt<Ul, Bl> as PrivateXor<Ur>>::Output: Trim,
impl<Ul, Bl, Ur> BitXor<Ur> for UInt<Ul, Bl> where
Bl: Bit,
Ul: Unsigned,
Ur: Unsigned,
UInt<Ul, Bl>: PrivateXor<Ur>,
<UInt<Ul, Bl> as PrivateXor<Ur>>::Output: Trim, Xoring unsigned integers.
We use our PrivateXor operator and then Trim the output.
type Output = <<UInt<Ul, Bl> as PrivateXor<Ur>>::Output as Trim>::Output
The resulting type after applying the ^ operator.
fn bitxor(self, Ur) -> <UInt<Ul, Bl> as BitXor<Ur>>::Output
fn bitxor(self, Ur) -> <UInt<Ul, Bl> as BitXor<Ur>>::OutputPerforms the ^ operation.
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned,
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned, UInt<Ul, B0> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
type Output = UInt<<Ul as BitOr<Ur>>::Output, B1>
The resulting type after applying the | operator.
fn bitor(self, UInt<Ur, B1>) -> <UInt<Ul, B0> as BitOr<UInt<Ur, B1>>>::Output
fn bitor(self, UInt<Ur, B1>) -> <UInt<Ul, B0> as BitOr<UInt<Ur, B1>>>::OutputPerforms the | operation.
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned,
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned, UInt<Ul, B1> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
type Output = UInt<<Ul as BitOr<Ur>>::Output, B1>
The resulting type after applying the | operator.
fn bitor(self, UInt<Ur, B1>) -> <UInt<Ul, B1> as BitOr<UInt<Ur, B1>>>::Output
fn bitor(self, UInt<Ur, B1>) -> <UInt<Ul, B1> as BitOr<UInt<Ur, B1>>>::OutputPerforms the | operation.
impl<B, U> BitOr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<B, U> BitOr<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, X | UTerm = X
type Output = UInt<U, B>
The resulting type after applying the | operator.
fn bitor(self, UTerm) -> <UInt<U, B> as BitOr<UTerm>>::Output
fn bitor(self, UTerm) -> <UInt<U, B> as BitOr<UTerm>>::OutputPerforms the | operation.
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned,
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned, UInt<Ul, B1> | UInt<Ur, B0> = UInt<Ul | Ur, B1>
type Output = UInt<<Ul as BitOr<Ur>>::Output, B1>
The resulting type after applying the | operator.
fn bitor(self, UInt<Ur, B0>) -> <UInt<Ul, B1> as BitOr<UInt<Ur, B0>>>::Output
fn bitor(self, UInt<Ur, B0>) -> <UInt<Ul, B1> as BitOr<UInt<Ur, B0>>>::OutputPerforms the | operation.
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned,
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + BitOr<Ur>,
Ur: Unsigned, UInt<Ul, B0> | UInt<Ur, B0> = UInt<Ul | Ur, B0>
type Output = UInt<<Ul as BitOr<Ur>>::Output, B0>
The resulting type after applying the | operator.
fn bitor(self, UInt<Ur, B0>) -> <UInt<Ul, B0> as BitOr<UInt<Ur, B0>>>::Output
fn bitor(self, UInt<Ur, B0>) -> <UInt<Ul, B0> as BitOr<UInt<Ur, B0>>>::OutputPerforms the | operation.
impl<U, B> Add<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Add<UTerm> for UInt<U, B> where
B: Bit,
U: Unsigned, UInt<U, B> + UTerm = UInt<U, B>
type Output = UInt<U, B>
The resulting type after applying the + operator.
fn add(self, UTerm) -> <UInt<U, B> as Add<UTerm>>::Output
fn add(self, UTerm) -> <UInt<U, B> as Add<UTerm>>::OutputPerforms the + operation.
impl<U, B> Add<B0> for UInt<U, B> where
B: Bit,
U: Unsigned,
impl<U, B> Add<B0> for UInt<U, B> where
B: Bit,
U: Unsigned, U + B0 = U
type Output = UInt<U, B>
The resulting type after applying the + operator.
fn add(self, B0) -> <UInt<U, B> as Add<B0>>::Output
fn add(self, B0) -> <UInt<U, B> as Add<B0>>::OutputPerforms the + operation.
impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned,
impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B0> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned, UInt<Ul, B0> + UInt<Ur, B1> = UInt<Ul + Ur, B1>
type Output = UInt<<Ul as Add<Ur>>::Output, B1>
The resulting type after applying the + operator.
fn add(self, UInt<Ur, B1>) -> <UInt<Ul, B0> as Add<UInt<Ur, B1>>>::Output
fn add(self, UInt<Ur, B1>) -> <UInt<Ul, B0> as Add<UInt<Ur, B1>>>::OutputPerforms the + operation.
impl<U> Add<B1> for UInt<U, B1> where
U: Unsigned + Add<B1>,
<U as Add<B1>>::Output: Unsigned,
impl<U> Add<B1> for UInt<U, B1> where
U: Unsigned + Add<B1>,
<U as Add<B1>>::Output: Unsigned, UInt<U, B1> + B1 = UInt<U + B1, B0>
type Output = UInt<<U as Add<B1>>::Output, B0>
The resulting type after applying the + operator.
fn add(self, B1) -> <UInt<U, B1> as Add<B1>>::Output
fn add(self, B1) -> <UInt<U, B1> as Add<B1>>::OutputPerforms the + operation.
impl<U> Add<B1> for UInt<U, B0> where
U: Unsigned,
impl<U> Add<B1> for UInt<U, B0> where
U: Unsigned, UInt<U, B0> + B1 = UInt<U + B1>
type Output = UInt<U, B1>
The resulting type after applying the + operator.
fn add(self, B1) -> <UInt<U, B0> as Add<B1>>::Output
fn add(self, B1) -> <UInt<U, B0> as Add<B1>>::OutputPerforms the + operation.
impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned,
impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B0> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned, UInt<Ul, B0> + UInt<Ur, B0> = UInt<Ul + Ur, B0>
type Output = UInt<<Ul as Add<Ur>>::Output, B0>
The resulting type after applying the + operator.
fn add(self, UInt<Ur, B0>) -> <UInt<Ul, B0> as Add<UInt<Ur, B0>>>::Output
fn add(self, UInt<Ur, B0>) -> <UInt<Ul, B0> as Add<UInt<Ur, B0>>>::OutputPerforms the + operation.
impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned,
<Ul as Add<Ur>>::Output: Add<B1>,
impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B1> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned,
<Ul as Add<Ur>>::Output: Add<B1>, UInt<Ul, B1> + UInt<Ur, B1> = UInt<(Ul + Ur) + B1, B0>
type Output = UInt<<<Ul as Add<Ur>>::Output as Add<B1>>::Output, B0>
The resulting type after applying the + operator.
fn add(self, UInt<Ur, B1>) -> <UInt<Ul, B1> as Add<UInt<Ur, B1>>>::Output
fn add(self, UInt<Ur, B1>) -> <UInt<Ul, B1> as Add<UInt<Ur, B1>>>::OutputPerforms the + operation.
impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned,
impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B1> where
Ul: Unsigned + Add<Ur>,
Ur: Unsigned, UInt<Ul, B1> + UInt<Ur, B0> = UInt<Ul + Ur, B1>