pub trait CountDigits: Copy + Sized {
    // Required method
    fn count_digits(self) -> u32;
}
Expand description

Count the decimal digits of an integer.

Required Methods§

source

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

§Examples
use count_digits::CountDigits;

assert_eq!(03, i8::MIN.count_digits());
assert_eq!(03, i8::MAX.count_digits());
assert_eq!(03, NonZeroI8::MIN.count_digits());
assert_eq!(03, NonZeroI8::MAX.count_digits());

assert_eq!(01, u8::MIN.count_digits());
assert_eq!(03, u8::MAX.count_digits());
assert_eq!(01, NonZeroU8::MIN.count_digits());
assert_eq!(03, NonZeroU8::MAX.count_digits());

assert_eq!(05, i16::MIN.count_digits());
assert_eq!(05, i16::MAX.count_digits());
assert_eq!(05, NonZeroI16::MIN.count_digits());
assert_eq!(05, NonZeroI16::MAX.count_digits());

assert_eq!(01, u16::MIN.count_digits());
assert_eq!(05, u16::MAX.count_digits());
assert_eq!(01, NonZeroU16::MIN.count_digits());
assert_eq!(05, NonZeroU16::MAX.count_digits());

assert_eq!(10, i32::MIN.count_digits());
assert_eq!(10, i32::MAX.count_digits());
assert_eq!(10, NonZeroI32::MIN.count_digits());
assert_eq!(10, NonZeroI32::MAX.count_digits());

assert_eq!(01, u32::MIN.count_digits());
assert_eq!(10, u32::MAX.count_digits());
assert_eq!(01, NonZeroU32::MIN.count_digits());
assert_eq!(10, NonZeroU32::MAX.count_digits());

assert_eq!(19, i64::MIN.count_digits());
assert_eq!(19, i64::MAX.count_digits());
assert_eq!(19, NonZeroI64::MIN.count_digits());
assert_eq!(19, NonZeroI64::MAX.count_digits());

assert_eq!(01, u64::MIN.count_digits());
assert_eq!(20, u64::MAX.count_digits());
assert_eq!(01, NonZeroU64::MIN.count_digits());
assert_eq!(20, NonZeroU64::MAX.count_digits());

assert_eq!(39, i128::MIN.count_digits());
assert_eq!(39, i128::MAX.count_digits());
assert_eq!(39, NonZeroI128::MIN.count_digits());
assert_eq!(39, NonZeroI128::MAX.count_digits());

assert_eq!(01, u128::MIN.count_digits());
assert_eq!(39, u128::MAX.count_digits());
assert_eq!(01, NonZeroU128::MIN.count_digits());
assert_eq!(39, NonZeroU128::MAX.count_digits());

#[cfg(target_pointer_width = "64")] {
  assert_eq!(isize::MIN.count_digits(), i64::MIN.count_digits());
  assert_eq!(isize::MAX.count_digits(), i64::MAX.count_digits());
  assert_eq!(NonZeroIsize::MIN.count_digits(), NonZeroI64::MIN.count_digits());
  assert_eq!(NonZeroIsize::MAX.count_digits(), NonZeroI64::MAX.count_digits());

  assert_eq!(usize::MIN.count_digits(), u64::MIN.count_digits());
  assert_eq!(usize::MAX.count_digits(), u64::MAX.count_digits());
  assert_eq!(NonZeroUsize::MIN.count_digits(), NonZeroU64::MIN.count_digits());
  assert_eq!(NonZeroUsize::MAX.count_digits(), NonZeroU64::MAX.count_digits());
}

#[cfg(target_pointer_width = "32")] {
  assert_eq!(isize::MIN.count_digits(), i32::MIN.count_digits());
  assert_eq!(isize::MAX.count_digits(), i32::MAX.count_digits());
  assert_eq!(NonZeroIsize::MIN.count_digits(), NonZeroI32::MIN.count_digits());
  assert_eq!(NonZeroIsize::MAX.count_digits(), NonZeroI32::MAX.count_digits());

  assert_eq!(usize::MIN.count_digits(), u32::MIN.count_digits());
  assert_eq!(usize::MAX.count_digits(), u32::MAX.count_digits());
  assert_eq!(NonZeroUsize::MIN.count_digits(), NonZeroU32::MIN.count_digits());
  assert_eq!(NonZeroUsize::MAX.count_digits(), NonZeroU32::MAX.count_digits());
}

#[cfg(target_pointer_width = "16")] {
  assert_eq!(isize::MIN.count_digits(), i16::MIN.count_digits());
  assert_eq!(isize::MAX.count_digits(), i16::MAX.count_digits());
  assert_eq!(NonZeroIsize::MIN.count_digits(), NonZeroI16::MIN.count_digits());
  assert_eq!(NonZeroIsize::MAX.count_digits(), NonZeroI16::MAX.count_digits());

  assert_eq!(usize::MIN.count_digits(), u16::MIN.count_digits());
  assert_eq!(usize::MAX.count_digits(), u16::MAX.count_digits());
  assert_eq!(NonZeroUsize::MIN.count_digits(), NonZeroU16::MIN.count_digits());
  assert_eq!(NonZeroUsize::MAX.count_digits(), NonZeroU16::MAX.count_digits());
}

#[cfg(target_pointer_width = "8")] {
  assert_eq!(isize::MIN.count_digits(), i8::MIN.count_digits());
  assert_eq!(isize::MAX.count_digits(), i8::MAX.count_digits());
  assert_eq!(NonZeroIsize::MIN.count_digits(), NonZeroI8::MIN.count_digits());
  assert_eq!(NonZeroIsize::MAX.count_digits(), NonZeroI8::MAX.count_digits());

  assert_eq!(usize::MIN.count_digits(), u8::MIN.count_digits());
  assert_eq!(usize::MAX.count_digits(), u8::MAX.count_digits());
  assert_eq!(NonZeroUsize::MIN.count_digits(), NonZeroU8::MIN.count_digits());
  assert_eq!(NonZeroUsize::MAX.count_digits(), NonZeroU8::MAX.count_digits());
}

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl CountDigits for i8

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for i16

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for i32

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for i64

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for i128

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for isize

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for u8

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for u16

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for u32

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for u64

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for u128

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for usize

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroI8

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroI16

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroI32

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroI64

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroI128

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroIsize

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroU8

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroU16

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroU32

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroU64

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroU128

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

source§

impl CountDigits for NonZeroUsize

source§

fn count_digits(self) -> u32

Returns the count of decimal digits in an integer.

Implementors§