u3

Struct u3 

Source
pub struct u3(/* private fields */);
Expand description

3-bit unsigned integer in the range 0..8

Implementations§

Source§

impl u3

Source

pub const BITS: u32 = 3u32

Bit dimension

Source

pub const MIN: Self

Minimum value

Source

pub const MAX: Self

Maximal value

Source

pub const ONE: Self

One value

Source

pub const ZERO: Self

One value

Source

pub const fn with(value: u8) -> Self

Creates a new value from a provided `value.

Panics if the value exceeds Self::MAX

Source

pub const fn to_u8(&self) -> u8

Returns inner u8 representation, which is always less or equal to Self::MAX

Source

pub const fn into_u8(self) -> u8

Returns inner u8 representation, which is always less or equal to Self::MAX

Source§

impl u3

Source

pub fn checked_add<T>(self, rhs: T) -> Option<Self>
where T: Into<u8>,

Checked integer addition. Computes self + rhs, returning None if overflow occurred.

Source

pub fn saturating_add<T>(self, rhs: T) -> Self
where T: Into<u8>,

Saturating integer addition. Computes self + rhs, saturating at the numeric bounds instead of overflowing.

Source

pub fn overflowing_add<T>(self, rhs: T) -> (Self, bool)
where T: Into<u8>,

Calculates self + rhs

Returns a tuple of the addition along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Source

pub fn wrapping_add<T>(self, rhs: T) -> Self
where T: Into<u8>,

Wrapping (modular) addition. Computes self + rhs, wrapping around at the boundary of the type.

Source

pub fn checked_sub<T>(self, rhs: T) -> Option<Self>
where T: Into<u8>,

Checked integer subtraction. Computes self - rhs, returning None if overflow occurred.

Source

pub fn saturating_sub<T>(self, rhs: T) -> Self
where T: Into<u8>,

Saturating integer subtraction. Computes self - rhs, saturating at the numeric bounds instead of overflowing.

Source

pub fn overflowing_sub<T>(self, rhs: T) -> (Self, bool)
where T: Into<u8>,

Calculates self - rhs

Returns a tuple of the subtraction along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Source

pub fn wrapping_sub<T>(self, rhs: T) -> Self
where T: Into<u8>,

Wrapping (modular) subtraction. Computes self - rhs, wrapping around at the boundary of the type.

Source

pub fn checked_mul<T>(self, rhs: T) -> Option<Self>
where T: Into<u8>,

Checked integer multiplication. Computes self * rhs, returning None if overflow occurred.

Source

pub fn saturating_mul<T>(self, rhs: T) -> Self
where T: Into<u8>,

Saturating integer multiplication. Computes self * rhs, saturating at the numeric bounds instead of overflowing.

Source

pub fn overflowing_mul<T>(self, rhs: T) -> (Self, bool)
where T: Into<u8>,

Calculates self * rhs

Returns a tuple of the multiplication along with a boolean indicating whether an arithmetic overflow would occur. If an overflow would have occurred then the wrapped value is returned.

Source

pub fn wrapping_mul<T>(self, rhs: T) -> Self
where T: Into<u8>,

Wrapping (modular) multiplication. Computes self * rhs, wrapping around at the boundary of the type.

Source

pub fn div_rem(self, other: Self) -> Result<(Self, Self), DivError>

Trait Implementations§

Source§

impl<T> Add<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the + operator.
Source§

fn add(self, rhs: T) -> Self::Output

Performs the + operation. Read more
Source§

impl<T> Add<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the + operator.
Source§

fn add(self, rhs: T) -> Self::Output

Performs the + operation. Read more
Source§

impl<T> AddAssign<T> for u3
where T: Into<u8>,

Source§

fn add_assign(&mut self, rhs: T)

Performs the += operation. Read more
Source§

impl AsRef<u8> for u3

Source§

fn as_ref(&self) -> &u8

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Binary for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<T> BitAnd<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: T) -> Self::Output

Performs the & operation. Read more
Source§

impl<T> BitAnd<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the & operator.
Source§

fn bitand(self, rhs: T) -> Self::Output

Performs the & operation. Read more
Source§

impl<T> BitAndAssign<T> for u3
where T: Into<u8>,

Source§

fn bitand_assign(&mut self, rhs: T)

Performs the &= operation. Read more
Source§

impl<T> BitOr<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: T) -> Self::Output

Performs the | operation. Read more
Source§

impl<T> BitOr<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the | operator.
Source§

fn bitor(self, rhs: T) -> Self::Output

Performs the | operation. Read more
Source§

impl<T> BitOrAssign<T> for u3
where T: Into<u8>,

Source§

fn bitor_assign(&mut self, rhs: T)

Performs the |= operation. Read more
Source§

impl<T> BitXor<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: T) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<T> BitXor<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the ^ operator.
Source§

fn bitxor(self, rhs: T) -> Self::Output

Performs the ^ operation. Read more
Source§

impl<T> BitXorAssign<T> for u3
where T: Into<u8>,

Source§

fn bitxor_assign(&mut self, rhs: T)

Performs the ^= operation. Read more
Source§

impl Clone for u3

Source§

fn clone(&self) -> u3

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for u3

Source§

fn default() -> u3

Returns the “default value” for a type. Read more
Source§

impl Display for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T> Div<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the / operator.
Source§

fn div(self, rhs: T) -> Self::Output

Performs the / operation. Read more
Source§

impl<T> Div<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the / operator.
Source§

fn div(self, rhs: T) -> Self::Output

Performs the / operation. Read more
Source§

impl<T> DivAssign<T> for u3
where T: Into<u8>,

Source§

fn div_assign(&mut self, rhs: T)

Performs the /= operation. Read more
Source§

impl From<u1> for u3

Source§

fn from(value: u1) -> Self

Converts to this type from the input type.
Source§

impl From<u2> for u3

Source§

fn from(value: u2) -> Self

Converts to this type from the input type.
Source§

impl From<u3> for u4

Source§

fn from(value: u3) -> Self

Converts to this type from the input type.
Source§

impl From<u3> for u5

Source§

fn from(value: u3) -> Self

Converts to this type from the input type.
Source§

impl From<u3> for u6

Source§

fn from(value: u3) -> Self

Converts to this type from the input type.
Source§

impl From<u3> for u7

Source§

fn from(value: u3) -> Self

Converts to this type from the input type.
Source§

impl From<u3> for u8

Source§

fn from(val: u3) -> Self

Converts to this type from the input type.
Source§

impl FromStr for u3

Source§

type Err = ParseIntError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for u3

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl LowerHex for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl<T> Mul<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: T) -> Self::Output

Performs the * operation. Read more
Source§

impl<T> Mul<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: T) -> Self::Output

Performs the * operation. Read more
Source§

impl<T> MulAssign<T> for u3
where T: Into<u8>,

Source§

fn mul_assign(&mut self, rhs: T)

Performs the *= operation. Read more
Source§

impl Octal for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Ord for u3

Source§

fn cmp(&self, other: &u3) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for u3

Source§

fn eq(&self, other: &u3) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for u3

Source§

fn partial_cmp(&self, other: &u3) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<T> Rem<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: T) -> Self::Output

Performs the % operation. Read more
Source§

impl<T> Rem<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: T) -> Self::Output

Performs the % operation. Read more
Source§

impl<T> RemAssign<T> for u3
where T: Into<u8>,

Source§

fn rem_assign(&mut self, rhs: T)

Performs the %= operation. Read more
Source§

impl<T> Shl<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: T) -> Self::Output

Performs the << operation. Read more
Source§

impl<T> Shl<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the << operator.
Source§

fn shl(self, rhs: T) -> Self::Output

Performs the << operation. Read more
Source§

impl<T> ShlAssign<T> for u3
where T: Into<u8>,

Source§

fn shl_assign(&mut self, rhs: T)

Performs the <<= operation. Read more
Source§

impl<T> Shr<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: T) -> Self::Output

Performs the >> operation. Read more
Source§

impl<T> Shr<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the >> operator.
Source§

fn shr(self, rhs: T) -> Self::Output

Performs the >> operation. Read more
Source§

impl<T> ShrAssign<T> for u3
where T: Into<u8>,

Source§

fn shr_assign(&mut self, rhs: T)

Performs the >>= operation. Read more
Source§

impl<T> Sub<T> for &u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: T) -> Self::Output

Performs the - operation. Read more
Source§

impl<T> Sub<T> for u3
where T: Into<u8>,

Source§

type Output = u3

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: T) -> Self::Output

Performs the - operation. Read more
Source§

impl<T> SubAssign<T> for u3
where T: Into<u8>,

Source§

fn sub_assign(&mut self, rhs: T)

Performs the -= operation. Read more
Source§

impl TryFrom<u8> for u3

Source§

type Error = OverflowError<u8>

The type returned in the event of a conversion error.
Source§

fn try_from(value: u8) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl UpperHex for u3

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Copy for u3

Source§

impl Eq for u3

Source§

impl StructuralPartialEq for u3

Auto Trait Implementations§

§

impl Freeze for u3

§

impl RefUnwindSafe for u3

§

impl Send for u3

§

impl Sync for u3

§

impl Unpin for u3

§

impl UnwindSafe for u3

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 1 byte