🔬This is a nightly-only experimental API. (
new_range_api #125687)Expand description
§Experimental replacement range types
The types within this module are meant to replace the existing
Range, RangeInclusive, and RangeFrom types in a future edition.
#![feature(new_range_api)]
use core::range::{Range, RangeFrom, RangeInclusive};
let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[ .. ], [0, 1, 2, 3, 4]);
assert_eq!(arr[ .. 3 ], [0, 1, 2 ]);
assert_eq!(arr[ ..=3 ], [0, 1, 2, 3 ]);
assert_eq!(arr[ RangeFrom::from(1.. )], [ 1, 2, 3, 4]);
assert_eq!(arr[ Range::from(1..3 )], [ 1, 2 ]);
assert_eq!(arr[RangeInclusive::from(1..=3)], [ 1, 2, 3 ]);Modules§
- legacy
Experimental Legacy range types
Structs§
- An unbounded range (
..). - A range only bounded exclusively above (
..end). - A range only bounded inclusively above (
..=end). - Iter
Range Experimental By-valueRangeiterator. - Iter
Range From Experimental By-valueRangeFromiterator. - Iter
Range Inclusive Experimental By-valueRangeInclusiveiterator. - Range
Experimental A (half-open) range bounded inclusively below and exclusively above (start..endin a future edition). - Range
From Experimental A range only bounded inclusively below (start..). - Range
Inclusive Experimental A range bounded inclusively below and above (start..=end).
Enums§
- An endpoint of a range of keys.
Traits§
RangeBoundsis implemented by Rust’s built-in range types, produced by range syntax like..,a..,..b,..=c,d..e, orf..=g.- OneSided
Range Experimental OneSidedRangeis implemented for built-in range types that are unbounded on one side. For example,a..,..band..=cimplementOneSidedRange, but..,d..e, andf..=gdo not. - Step
Experimental Objects that have a notion of successor and predecessor operations.