4 releases
0.1.3 | Nov 8, 2023 |
---|---|
0.1.2 | Nov 2, 2023 |
0.1.1 | Oct 31, 2023 |
0.1.0 | Oct 31, 2023 |
#5 in #comparing
Used in reconcile
15KB
184 lines
range_cmp
This Rust crate provides the RangeComparable
trait on all types that
implement Ord
. This traits exposes a range_cmp
associated method
that allows comparing a value with a range of values:
use range_cmp::{RangeComparable, RangeOrdering};
assert_eq!(15.range_cmp(20..30), RangeOrdering::Below);
assert_eq!(25.range_cmp(20..30), RangeOrdering::Inside);
assert_eq!(35.range_cmp(20..30), RangeOrdering::Above);
Empty ranges handling
This crate does not strictly handle empty ranges, which are not mathematically comparable. In this case, range_cmp will show different behavior depending on the representation of the empty range. For instance:
assert_eq!(30.range_cmp(45..35), RangeOrdering::Below);
assert_eq!(30.range_cmp(25..15), RangeOrdering::Above);
assert_eq!(0.range_cmp(0..0), RangeOrdering::Above);
lib.rs
:
This crate provides the RangeComparable
trait on all types that implement [Ord
].
This traits exposes a range_cmp
associated method that allows
comparing a value with a range of values:
use range_cmp::{RangeComparable, RangeOrdering};
assert_eq!(15.range_cmp(20..30), RangeOrdering::Below);
assert_eq!(25.range_cmp(20..30), RangeOrdering::Inside);
assert_eq!(35.range_cmp(20..30), RangeOrdering::Above);