A Rust library for lexicographically comparing values in their Display
representations.
The utilities provided by this library gives the same results as comparing
values after applying to_string()
, but they never allocate on the heap memory.
Compare digits of numbers:
assert!(fmt_cmp::eq(f64::NAN, f64::NAN)); // `"NaN" == "NaN"`
assert!(fmt_cmp::cmp(&42, &240).is_gt()); // `"42" > "240"`
Sorting integers lexicographically:
use std::collections::BTreeSet;
use fmt_cmp::Cmp as FmtCmp;
let mut values: BTreeSet<FmtCmp<u32>> = (1..=10).map(FmtCmp).collect();
assert!(values
.into_iter()
.map(|cmp| cmp.0)
.eq([1, 10, 2, 3, 4, 5, 6, 7, 8, 9]));
Copyright (c) 2021 Daiki "tesaguri" Mizukami
This project is licensed under either of:
- The Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0), or
- The MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.