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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>>>::Output
This 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>) -> bool
This 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>) -> bool
This 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>) -> bool
This 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>) -> bool
This 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>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Method 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>>::Output
Method 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>>>::Output
Method 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>>>::Output
Method 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>::Output
This 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>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>) -> Ordering
This method returns an Ordering
between self
and other
. Read more
fn max(self, other: Self) -> Self
1.21.0[src]
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
fn min(self, other: Self) -> Self
1.21.0[src]
fn min(self, other: Self) -> Self
Compares 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>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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() -> u8
fn to_u16() -> u16
fn to_u16() -> u16
fn to_u32() -> u32
fn to_u32() -> u32
fn to_u64() -> u64
fn to_u64() -> u64
fn to_usize() -> usize
fn to_usize() -> usize
fn to_i8() -> i8
fn to_i8() -> i8
fn to_i16() -> i16
fn to_i16() -> i16
fn to_i32() -> i32
fn to_i32() -> i32
fn to_i64() -> i64
fn to_i64() -> i64
fn to_isize() -> isize
fn to_isize() -> isize
impl<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>) -> bool
This 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>) -> bool
This 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>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>>::Output
Performs 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>>::Output
Performs 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>>::Output
Performs 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>>>::Output
Performs 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>>>::Output
Performs 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>