Type Alias NonExtremeU8

Source
pub type NonExtremeU8 = NonValueU8<{ u8::MAX }>;
Expand description

An unsigned integer that is known not to equal its most extreme value (MAX).

Unlike the NonValue* types in general, this type alias implements the Default and ConstDefault traits.

Aliased Type§

struct NonExtremeU8(/* private fields */);

Implementations

Source§

impl<const V: u8> NonValueU8<V>

Source

pub const MAX: Self

Returns the maximum possible value.

Source

pub const MIN: Self

Returns the minimum possible value.

Source

pub const VALID_VALUES: u8 = 255u8

Returns the number of valid values.

Source

pub const INVALID_VALUES: u8 = 1u8

Returns the number of invalid values.

Source

pub const fn new(value: u8) -> Option<Self>

Returns a NonValueU8 with the given value, if it is not equal to V.

Source

pub const unsafe fn new_unchecked(value: u8) -> Self

Returns a NonValueU8 if the given value if it is not equal to V.

§Panics

Panics in debug if the given value is equal to V.

§Safety

The given value must never be equal to V.

Source

pub const fn get(&self) -> u8

Returns the value as a primitive type.

Source

pub const fn is_max(&self) -> bool

Returns true if it is equal to the maximum value (MAX).

Source

pub const fn is_min(&self) -> bool

Returns true if it is equal to the minimum value (MIN).

Source

pub const fn checked_add(&self, other: u8) -> NumResult<Self>

Checked integer addition. Computes self + rhs.

§Errors

Returns Overflow if the operations overflows, or Invalid if the result equals the forbidden value V.

Source

pub const fn checked_sub(&self, other: u8) -> NumResult<Self>

Checked integer substration. Computes self - rhs.

§Errors

Returns Overflow if the operations overflows, or Invalid if the result equals the forbidden value V.

Source

pub const fn strict_add(&self, other: u8) -> Self

Strict integer addition. Computes self + rhs.

§Panics

Panics on overflow or if the result equals the forbidden value V.

Source

pub const fn strict_sub(&self, other: u8) -> Self

Strict integer substration. Computes self - rhs.

§Panics

Panics on overflow or if the result equals the forbidden value V.

Source

pub const fn saturating_add(&self, other: u8) -> Self

Saturating integer addition. Computes self + rhs.

Saturates at the numeric bounds instead of overflowing. If the result would equal V it will return V - 1.

Source

pub const fn saturating_sub(&self, other: u8) -> Self

Saturating integer substration. Computes self - rhs.

Saturates at the numeric bounds instead of overflowing. If the result would equal V it will return V + 1.

Source

pub const fn wrapping_add(&self, other: u8) -> Self

Wraping integer addition. Computes self + rhs.

Wraps at the numeric bounds instead of overflowing. If the result would equal V it will return V + 1.

Source

pub const fn wrapping_sub(&self, other: u8) -> Self

Wraping integer subtraction. Computes self - rhs.

Wraps at the numeric bounds instead of overflowing. If the result would equal V it will return V - 1.

Trait Implementations§

Source§

impl ConstDefault for NonExtremeU8

Source§

const DEFAULT: Self

§Features

Makes use of the unsafe_niche feature if enabled.

Source§

impl Default for NonExtremeU8

Source§

fn default() -> Self

§Features

Makes use of the unsafe_niche feature if enabled.

Source§

impl<const V: u8> Binary for NonValueU8<V>

Source§

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

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

impl<const V: u8> BitSized<{$IP::BYTE_SIZE * 8}> for NonValueU8<V>

Source§

const BIT_SIZE: usize = _

The bit size of this type (only the relevant data part, without padding). Read more
Source§

const MIN_BYTE_SIZE: usize = _

The rounded up byte size for this type. Read more
Source§

fn bit_size(&self) -> usize

Returns the bit size of this type (only the relevant data part, without padding). Read more
Source§

fn min_byte_size(&self) -> usize

Returns the rounded up byte size for this type. Read more
Source§

impl<const V: u8> CheckedBitPattern for NonValueU8<V>

Source§

type Bits = u8

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern.
Source§

fn is_valid_bit_pattern(bits: &Self::Bits) -> bool

If this function returns true, then it must be valid to reinterpret bits as &Self.
Source§

impl<const V: u8> Clone for NonValueU8<V>

Source§

fn clone(&self) -> NonValueU8<V>

Returns a copy 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<const V: u8> Debug for NonValueU8<V>

Source§

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

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

impl<const V: u8> Display for NonValueU8<V>

Source§

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

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

impl<const V: u8> FromStr for NonValueU8<V>

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<const V: u8> Hash for NonValueU8<V>

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<const V: u8> LowerHex for NonValueU8<V>

Source§

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

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

impl<const V: u8> Octal for NonValueU8<V>

Source§

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

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

impl<const V: u8> Ord for NonValueU8<V>

Source§

fn cmp(&self, other: &NonValueU8<V>) -> 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<const V: u8> PartialEq for NonValueU8<V>

Source§

fn eq(&self, other: &NonValueU8<V>) -> 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<const V: u8> PartialOrd for NonValueU8<V>

Source§

fn partial_cmp(&self, other: &NonValueU8<V>) -> 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<const V: u8> TryFrom<u8> for NonValueU8<V>

Source§

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

§Features

Makes use of the unsafe_niche feature if enabled.

Source§

type Error = TryFromIntError

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

impl<const V: u8> UpperHex for NonValueU8<V>

Source§

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

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

impl<const V: u8> Copy for NonValueU8<V>

Source§

impl<const V: u8> Eq for NonValueU8<V>

Source§

impl<const V: u8> NoUninit for NonValueU8<V>

Source§

impl<const V: u8> PodInOption for NonValueU8<V>

Source§

impl<const V: u8> StructuralPartialEq for NonValueU8<V>

Source§

impl<const V: u8> ZeroableInOption for NonValueU8<V>