🔬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-valueRange
iterator. - Iter
Range From Experimental By-valueRangeFrom
iterator. - Iter
Range Inclusive Experimental By-valueRangeInclusive
iterator. - Range
Experimental A (half-open) range bounded inclusively below and exclusively above (start..end
in 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§
RangeBounds
is implemented by Rust’s built-in range types, produced by range syntax like..
,a..
,..b
,..=c
,d..e
, orf..=g
.- OneSided
Range Experimental OneSidedRange
is implemented for built-in range types that are unbounded on one side. For example,a..
,..b
and..=c
implementOneSidedRange
, but..
,d..e
, andf..=g
do not. - Step
Experimental Objects that have a notion of successor and predecessor operations.