1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
use std::ops::{Bound, Range, RangeBounds}; pub fn bounds_to_range<R: RangeBounds<u64>>( r: R, fallback_min: u64, fallback_max: u64, ) -> Range<u64> { let start = match r.start_bound() { Bound::Included(i) => *i, Bound::Excluded(i) => *i + 1, Bound::Unbounded => fallback_min, }; let end = match r.end_bound() { Bound::Included(i) => (*i + 1), Bound::Excluded(i) => *i, Bound::Unbounded => fallback_max, }; Range { start, end } }