pub type U2 = UInt<UInt<UTerm, B1>, B0>;
Aliased Type§
struct U2 { /* private fields */ }
Implementations§
Trait Implementations§
source§impl<Ul, Ur: Unsigned> Add<UInt<Ur, B0>> for UInt<Ul, B0>where
Ul: Add<Ur> + Unsigned,
impl<Ul, Ur: Unsigned> Add<UInt<Ur, B0>> for UInt<Ul, B0>where Ul: Add<Ur> + Unsigned,
UInt<Ul, B0> + UInt<Ur, B0> = UInt<Ul + Ur, B0>
source§impl<Ul, Ur: Unsigned> Add<UInt<Ur, B1>> for UInt<Ul, B0>where
Ul: Add<Ur> + Unsigned,
impl<Ul, Ur: Unsigned> Add<UInt<Ur, B1>> for UInt<Ul, B0>where Ul: Add<Ur> + Unsigned,
UInt<Ul, B0> + UInt<Ur, B1> = UInt<Ul + Ur, B1>
source§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> BitAnd<Ur> for UInt<Ul, Bl>where
UInt<Ul, Bl>: PrivateAnd<Ur>,
PrivateAndOut<UInt<Ul, Bl>, Ur>: Trim,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> BitAnd<Ur> for UInt<Ul, Bl>where UInt<Ul, Bl>: PrivateAnd<Ur>, PrivateAndOut<UInt<Ul, Bl>, Ur>: Trim,
Anding unsigned integers.
We use our PrivateAnd
operator and then Trim
the output.
source§impl<Ul, Ur: Unsigned> BitOr<UInt<Ur, B0>> for UInt<Ul, B0>where
Ul: BitOr<Ur> + Unsigned,
impl<Ul, Ur: Unsigned> BitOr<UInt<Ur, B0>> for UInt<Ul, B0>where Ul: BitOr<Ur> + Unsigned,
UInt<Ul, B0> | UInt<Ur, B0> = UInt<Ul | Ur, B0>
source§impl<Ul, Ur: Unsigned> BitOr<UInt<Ur, B1>> for UInt<Ul, B0>where
Ul: BitOr<Ur> + Unsigned,
impl<Ul, Ur: Unsigned> BitOr<UInt<Ur, B1>> for UInt<Ul, B0>where Ul: BitOr<Ur> + Unsigned,
UInt<Ul, B0> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
source§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> BitXor<Ur> for UInt<Ul, Bl>where
UInt<Ul, Bl>: PrivateXor<Ur>,
PrivateXorOut<UInt<Ul, Bl>, Ur>: Trim,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> BitXor<Ur> for UInt<Ul, Bl>where UInt<Ul, Bl>: PrivateXor<Ur>, PrivateXorOut<UInt<Ul, Bl>, Ur>: Trim,
Xoring unsigned integers.
We use our PrivateXor
operator and then Trim
the output.
source§impl<Ul, Ur: Unsigned> Cmp<UInt<Ur, B0>> for UInt<Ul, B0>where
Ul: PrivateCmp<Ur, Equal> + Unsigned,
impl<Ul, Ur: Unsigned> Cmp<UInt<Ur, B0>> for UInt<Ul, B0>where Ul: PrivateCmp<Ur, Equal> + Unsigned,
UInt<Ul, B0>
cmp with UInt<Ur, B0>
: SoFar
is Equal
source§impl<Ul, Ur: Unsigned> Cmp<UInt<Ur, B1>> for UInt<Ul, B0>where
Ul: PrivateCmp<Ur, Less> + Unsigned,
impl<Ul, Ur: Unsigned> Cmp<UInt<Ur, B1>> for UInt<Ul, B0>where Ul: PrivateCmp<Ur, Less> + Unsigned,
UInt<Ul, B0>
cmp with UInt<Ur, B1>
: SoFar
is Less
source§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> Div<UInt<Ur, Br>> for UInt<Ul, Bl>where
UInt<Ul, Bl>: Len,
Length<UInt<Ul, Bl>>: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, U0, U0, Sub1<Length<UInt<Ul, Bl>>>>,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> Div<UInt<Ur, Br>> for UInt<Ul, Bl>where UInt<Ul, Bl>: Len, Length<UInt<Ul, Bl>>: Sub<B1>, (): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, U0, U0, Sub1<Length<UInt<Ul, Bl>>>>,
source§impl<Xp, Yp> Gcd<UInt<Yp, B0>> for UInt<Xp, B0>where
Xp: Gcd<Yp>,
UInt<Xp, B0>: NonZero,
UInt<Yp, B0>: NonZero,
impl<Xp, Yp> Gcd<UInt<Yp, B0>> for UInt<Xp, B0>where Xp: Gcd<Yp>, UInt<Xp, B0>: NonZero, UInt<Yp, B0>: NonZero,
gcd(x, y) = 2*gcd(x/2, y/2) if both x and y even
source§impl<Xp, Yp> Gcd<UInt<Yp, B1>> for UInt<Xp, B0>where
Xp: Gcd<UInt<Yp, B1>>,
UInt<Xp, B0>: NonZero,
impl<Xp, Yp> Gcd<UInt<Yp, B1>> for UInt<Xp, B0>where Xp: Gcd<UInt<Yp, B1>>, UInt<Xp, B0>: NonZero,
gcd(x, y) = gcd(x/2, y) if x even and y odd
source§impl<Un, Bn, Ui, Bi> GetBit<UInt<Ui, Bi>> for UInt<Un, Bn>where
UInt<Ui, Bi>: Copy + Sub<B1>,
Un: GetBit<Sub1<UInt<Ui, Bi>>>,
impl<Un, Bn, Ui, Bi> GetBit<UInt<Ui, Bi>> for UInt<Un, Bn>where UInt<Ui, Bi>: Copy + Sub<B1>, Un: GetBit<Sub1<UInt<Ui, Bi>>>,
source§impl<U, B: Bit> Len for UInt<U, B>where
U: Len + Unsigned,
Length<U>: Add<B1>,
Add1<Length<U>>: Unsigned,
impl<U, B: Bit> Len for UInt<U, B>where U: Len + Unsigned, Length<U>: Add<B1>, Add1<Length<U>>: Unsigned,
Length of a bit is 1
source§impl<U, B, Ur> Max<Ur> for UInt<U, B>where
U: Unsigned,
B: Bit,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur> + PrivateMax<Ur, Compare<UInt<U, B>, Ur>>,
impl<U, B, Ur> Max<Ur> for UInt<U, B>where U: Unsigned, B: Bit, Ur: Unsigned, UInt<U, B>: Cmp<Ur> + PrivateMax<Ur, Compare<UInt<U, B>, Ur>>,
source§impl<U, B, Ur> Min<Ur> for UInt<U, B>where
U: Unsigned,
B: Bit,
Ur: Unsigned,
UInt<U, B>: Cmp<Ur> + PrivateMin<Ur, Compare<UInt<U, B>, Ur>>,
impl<U, B, Ur> Min<Ur> for UInt<U, B>where U: Unsigned, B: Bit, Ur: Unsigned, UInt<U, B>: Cmp<Ur> + PrivateMin<Ur, Compare<UInt<U, B>, Ur>>,
source§impl<Ul, B: Bit, Ur: Unsigned> Mul<UInt<Ur, B>> for UInt<Ul, B0>where
Ul: Mul<UInt<Ur, B>> + Unsigned,
impl<Ul, B: Bit, Ur: Unsigned> Mul<UInt<Ur, B>> for UInt<Ul, B0>where Ul: Mul<UInt<Ur, B>> + Unsigned,
UInt<Ul, B0> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0>
source§impl<U: Ord, B: Ord> Ord for UInt<U, B>
impl<U: Ord, B: Ord> Ord for UInt<U, B>
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere Self: Sized,
source§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl>where
UInt<Ul, Bl>: Div<UInt<Ur, Br>> + Rem<UInt<Ur, Br>, Output = U0>,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl>where UInt<Ul, Bl>: Div<UInt<Ur, Br>> + Rem<UInt<Ur, Br>, Output = U0>,
source§impl<U: PartialEq, B: PartialEq> PartialEq<UInt<U, B>> for UInt<U, B>
impl<U: PartialEq, B: PartialEq> PartialEq<UInt<U, B>> for UInt<U, B>
source§impl<U: PartialOrd, B: PartialOrd> PartialOrd<UInt<U, B>> for UInt<U, B>
impl<U: PartialOrd, B: PartialOrd> PartialOrd<UInt<U, B>> for UInt<U, B>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> Rem<UInt<Ur, Br>> for UInt<Ul, Bl>where
UInt<Ul, Bl>: Len,
Length<UInt<Ul, Bl>>: Sub<B1>,
(): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, U0, U0, Sub1<Length<UInt<Ul, Bl>>>>,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned, Br: Bit> Rem<UInt<Ur, Br>> for UInt<Ul, Bl>where UInt<Ul, Bl>: Len, Length<UInt<Ul, Bl>>: Sub<B1>, (): PrivateDiv<UInt<Ul, Bl>, UInt<Ur, Br>, U0, U0, Sub1<Length<UInt<Ul, Bl>>>>,
source§impl<U: Unsigned, B: Bit> Shl<B0> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shl<B0> for UInt<U, B>
Shifting left any unsigned by a zero bit: U << B0 = U
source§impl<U: Unsigned, B: Bit> Shl<B1> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shl<B1> for UInt<U, B>
Shifting left a UInt
by a one bit: UInt<U, B> << B1 = UInt<UInt<U, B>, B0>
source§impl<U: Unsigned, B: Bit, Ur: Unsigned, Br: Bit> Shl<UInt<Ur, Br>> for UInt<U, B>where
UInt<Ur, Br>: Sub<B1>,
UInt<UInt<U, B>, B0>: Shl<Sub1<UInt<Ur, Br>>>,
impl<U: Unsigned, B: Bit, Ur: Unsigned, Br: Bit> Shl<UInt<Ur, Br>> for UInt<U, B>where UInt<Ur, Br>: Sub<B1>, UInt<UInt<U, B>, B0>: Shl<Sub1<UInt<Ur, Br>>>,
Shifting left UInt
by UInt
: X << Y
= UInt(X, B0) << (Y - 1)
source§impl<U: Unsigned, B: Bit> Shl<UTerm> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shl<UTerm> for UInt<U, B>
Shifting left UInt
by UTerm
: UInt<U, B> << UTerm = UInt<U, B>
source§impl<U: Unsigned, B: Bit> Shr<B0> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shr<B0> for UInt<U, B>
Shifting right any unsigned by a zero bit: U >> B0 = U
source§impl<U: Unsigned, B: Bit> Shr<B1> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shr<B1> for UInt<U, B>
Shifting right a UInt
by a 1 bit: UInt<U, B> >> B1 = U
source§impl<U, B: Bit, Ur: Unsigned, Br: Bit> Shr<UInt<Ur, Br>> for UInt<U, B>where
UInt<Ur, Br>: Sub<B1>,
U: Shr<Sub1<UInt<Ur, Br>>> + Unsigned,
impl<U, B: Bit, Ur: Unsigned, Br: Bit> Shr<UInt<Ur, Br>> for UInt<U, B>where UInt<Ur, Br>: Sub<B1>, U: Shr<Sub1<UInt<Ur, Br>>> + Unsigned,
Shifting right UInt
by UInt
: UInt(U, B) >> Y
= U >> (Y - 1)
source§impl<U: Unsigned, B: Bit> Shr<UTerm> for UInt<U, B>
impl<U: Unsigned, B: Bit> Shr<UTerm> for UInt<U, B>
Shifting right UInt
by UTerm
: UInt<U, B> >> UTerm = UInt<U, B>
source§impl<U> Sub<B1> for UInt<U, B0>where
U: Sub<B1> + Unsigned,
Sub1<U>: Unsigned,
impl<U> Sub<B1> for UInt<U, B0>where U: Sub<B1> + Unsigned, Sub1<U>: Unsigned,
UInt<U, B0> - B1 = UInt<U - B1, B1>
source§impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> Sub<Ur> for UInt<Ul, Bl>where
UInt<Ul, Bl>: PrivateSub<Ur>,
PrivateSubOut<UInt<Ul, Bl>, Ur>: Trim,
impl<Ul: Unsigned, Bl: Bit, Ur: Unsigned> Sub<Ur> for UInt<Ul, Bl>where UInt<Ul, Bl>: PrivateSub<Ur>, PrivateSubOut<UInt<Ul, Bl>, Ur>: Trim,
Subtracting unsigned integers. We just do our PrivateSub
and then Trim
the output.