#range #traits #value #comparing #ord #cmp #range-comparable

range-cmp

Trait that allows comparing a value to a range of values

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

#3 in #comparing


Used in reconcile

MIT/Apache

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);

No runtime deps