padded-number
- For numbers containing significant leading zeros
Used when "0" and "00" should be considered as distinct values. Encapsulated
in a PaddedNumber
type with, length bounds, ordering, arithmetic, and const
context features included.
use padded_number;
// macros 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
- Enabled serde support forPaddedNumber
. Serialization is done to and from a plain string.