Type Alias NonExtremeU16

Source
pub type NonExtremeU16 = NonValueU16<{ u16::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 NonExtremeU16(/* private fields */);

Implementations

Source§

impl<const V: u16> NonValueU16<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: u16 = 65_535u16

Returns the number of valid values.

Source

pub const INVALID_VALUES: u16 = 1u16

Returns the number of invalid values.

Source

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

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

Source

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

Returns a NonValueU16 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) -> u16

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: u16) -> 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: u16) -> 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: u16) -> 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: u16) -> 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: u16) -> 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: u16) -> 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: u16) -> 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: u16) -> 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 NonExtremeU16

Source§

const DEFAULT: Self

§Features

Makes use of the unsafe_niche feature if enabled.

Source§

impl Default for NonExtremeU16

Source§

fn default() -> Self

§Features

Makes use of the unsafe_niche feature if enabled.

Source§

impl<const V: u16> Binary for NonValueU16<V>

Source§

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

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

impl<const V: u16> BitSized<{$IP::BYTE_SIZE * 8}> for NonValueU16<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: u16> CheckedBitPattern for NonValueU16<V>

Source§

type Bits = u16

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: u16> Clone for NonValueU16<V>

Source§

fn clone(&self) -> NonValueU16<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: u16> Debug for NonValueU16<V>

Source§

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

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

impl<const V: u16> Display for NonValueU16<V>

Source§

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

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

impl<const V: u16> FromStr for NonValueU16<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: u16> Hash for NonValueU16<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: u16> LowerHex for NonValueU16<V>

Source§

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

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

impl<const V: u16> Octal for NonValueU16<V>

Source§

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

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

impl<const V: u16> Ord for NonValueU16<V>

Source§

fn cmp(&self, other: &NonValueU16<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: u16> PartialEq for NonValueU16<V>

Source§

fn eq(&self, other: &NonValueU16<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: u16> PartialOrd for NonValueU16<V>

Source§

fn partial_cmp(&self, other: &NonValueU16<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: u16> TryFrom<u16> for NonValueU16<V>

Source§

fn try_from(value: u16) -> 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: u16> UpperHex for NonValueU16<V>

Source§

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

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

impl<const V: u16> Copy for NonValueU16<V>

Source§

impl<const V: u16> Eq for NonValueU16<V>

Source§

impl<const V: u16> NoUninit for NonValueU16<V>

Source§

impl<const V: u16> PodInOption for NonValueU16<V>

Source§

impl<const V: u16> StructuralPartialEq for NonValueU16<V>

Source§

impl<const V: u16> ZeroableInOption for NonValueU16<V>