padded-number
- For numbers containing significant leading zeros
Used when "0" and "00" should be considered as distinct values. Encapsulated in
an efficient PaddedNumber
type with, length bounds, ordering, and arithmetic
features included.
use padded_number;
// macro creates a valid `PaddedNumber` at compile time
assert_eq!;
assert_ne!;
Length bounds
use FromStr;
use ;
let from_macro = bound_padded_number!;
let from_str = from_str.unwrap;
assert_eq!;
// try_new is const fn compared to `FromStr`
assert!;
assert!;
Ordering
use padded_number;
let a = padded_number!;
let b = padded_number!;
assert!;
let u = padded_number!;
let v = padded_number!;
assert!;
Addition and subtraction with u64 as right-hand-side
Zeros being their own step is required to make padded number arithmetic consistent.
use padded_number;
assert_eq!;
assert_eq!;
Feature flags
All are disabled by default.
macros
- Enables thepadded_number!
andbound_padded_number!
macros.serde
- Enables serde support forPaddedNumber
. Serialization is done to and from a plain string.unstable-nightly
- Enables methods onPaddedNumber
which in turn rely on the unstablegeneric_const_exprs
feature.