Sha256: 48b1da8b73f336a378d8e94095259f22384570ddf49bf0b4ede3836cc2ef826c
Contents?: true
Size: 1.63 KB
Versions: 1
Compression:
Stored size: 1.63 KB
Contents
use core::ops::{Bound, Range, RangeBounds}; pub(crate) fn third<A, B, C>(t: (A, B, C)) -> C { t.2 } #[track_caller] pub(crate) fn simplify_range<R>(range: R, len: usize) -> Range<usize> where R: RangeBounds<usize>, { let start = match range.start_bound() { Bound::Unbounded => 0, Bound::Included(&i) if i <= len => i, Bound::Excluded(&i) if i < len => i + 1, Bound::Included(i) | Bound::Excluded(i) => { panic!("range start index {i} out of range for slice of length {len}") } }; let end = match range.end_bound() { Bound::Unbounded => len, Bound::Excluded(&i) if i <= len => i, Bound::Included(&i) if i < len => i + 1, Bound::Included(i) | Bound::Excluded(i) => { panic!("range end index {i} out of range for slice of length {len}") } }; if start > end { panic!( "range start index {:?} should be <= range end index {:?}", range.start_bound(), range.end_bound() ); } start..end } pub(crate) fn try_simplify_range<R>(range: R, len: usize) -> Option<Range<usize>> where R: RangeBounds<usize>, { let start = match range.start_bound() { Bound::Unbounded => 0, Bound::Included(&i) if i <= len => i, Bound::Excluded(&i) if i < len => i + 1, _ => return None, }; let end = match range.end_bound() { Bound::Unbounded => len, Bound::Excluded(&i) if i <= len => i, Bound::Included(&i) if i < len => i + 1, _ => return None, }; if start > end { return None; } Some(start..end) }
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wasmtime-29.0.0 | ./ext/cargo-vendor/indexmap-2.7.1/src/util.rs |