Struct nominals::DigitSet

source ·
pub struct DigitSet<const N: usize, const HAS_ZERO: bool> { /* private fields */ }
Expand description

An ordered set of characters that can be treated as digits.

§Const Generics

  • N: The number of digits in this set.
  • HAS_ZERO: When true, the first digit in the set represents 0.
    • For Decimal, HAS_ZERO is true. This produces the ordering when counting from zero goes:

      n0129101112
      nominal0129101112
    • For LetterUpper, if A were treated as a 0, the first symbol that would appear in the “tens” location would be B:

      n01225262728
      nominalABCZBABBBC

      This is not the expected behavior, so LetterUpper utilizes DigitSet::zeroless to create a set with HAS_ZERO set to false. This produces the order:

      n01225262728
      nominalABCZAAABAC

      If 1-based counting is desired, DigitSet::one_based returns an updated set that returns Error::NoZeroSymbol if asked to format 0. It produces this order:

      n012326272829
      nominalerrABCZAAABAC

Implementations§

source§

impl<const N: usize> DigitSet<N, true>

source

pub const fn new(digits: [char; N]) -> Self

Returns a digit set whose first digit represents the 0 digit.

source§

impl<const N: usize> DigitSet<N, false>

source

pub const fn zeroless(digits: [char; N]) -> Self

Returns a digit set that does not have a symbol representing a 0 digit.

Trait Implementations§

source§

impl<const N: usize> DigitCollection for DigitSet<N, false>

§

type Fallback = NoFallback

The digit collection that should be used after this collection’s range is exhausted.
source§

fn has_zero_digit(&self) -> bool

Returns true if this collection has a symbol representing 0 at index 0.
source§

fn len(&self) -> usize

Returns the number of digits in this collection.
source§

fn digit(&self, index: usize) -> char

Returns the digit at location index. Read more
source§

fn fixed(&self) -> bool

If true, this digit collection can only produce a single digit.
source§

fn zero_based(&self) -> bool

Returns true if this collection should start counting at 1 instead of 0. This function is only called if has_zero_digit() returns false.
source§

fn is_empty(&self) -> bool

Returns true if this collection’s length is 0.
source§

fn and<Other>(self, other: Other) -> Chain<Self, Other>
where Self: Sized, Other: DigitCollection,

Chains self and other into a single DigitCollection.
source§

fn one_based(self) -> OneBased<Self>
where Self: Sized,

Returns this collection that indicates counting should start at 1 instead of 0. Read more
source§

impl<const N: usize> DigitCollection for DigitSet<N, true>

§

type Fallback = NoFallback

The digit collection that should be used after this collection’s range is exhausted.
source§

fn has_zero_digit(&self) -> bool

Returns true if this collection has a symbol representing 0 at index 0.
source§

fn len(&self) -> usize

Returns the number of digits in this collection.
source§

fn digit(&self, index: usize) -> char

Returns the digit at location index. Read more
source§

fn fixed(&self) -> bool

If true, this digit collection can only produce a single digit.
source§

fn zero_based(&self) -> bool

Returns true if this collection should start counting at 1 instead of 0. This function is only called if has_zero_digit() returns false.
source§

fn is_empty(&self) -> bool

Returns true if this collection’s length is 0.
source§

fn and<Other>(self, other: Other) -> Chain<Self, Other>
where Self: Sized, Other: DigitCollection,

Chains self and other into a single DigitCollection.
source§

fn one_based(self) -> OneBased<Self>
where Self: Sized,

Returns this collection that indicates counting should start at 1 instead of 0. Read more

Auto Trait Implementations§

§

impl<const N: usize, const HAS_ZERO: bool> Freeze for DigitSet<N, HAS_ZERO>

§

impl<const N: usize, const HAS_ZERO: bool> RefUnwindSafe for DigitSet<N, HAS_ZERO>

§

impl<const N: usize, const HAS_ZERO: bool> Send for DigitSet<N, HAS_ZERO>

§

impl<const N: usize, const HAS_ZERO: bool> Sync for DigitSet<N, HAS_ZERO>

§

impl<const N: usize, const HAS_ZERO: bool> Unpin for DigitSet<N, HAS_ZERO>

§

impl<const N: usize, const HAS_ZERO: bool> UnwindSafe for DigitSet<N, HAS_ZERO>

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> 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, D> NominalSystem<T> for D

source§

fn try_format_nominal(&self, nominal: T) -> Result<NominalString, Error<T>>

Tries to format nominal using this system. Read more
source§

fn format_nominal(&self, nominal: T) -> NominalString

Formats nominal using this system.
source§

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

§

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>,

§

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.