🔬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§
- Iter
Range Experimental - By-value
Rangeiterator. - Iter
Range From Experimental - By-value
RangeFromiterator. - Iter
Range Inclusive Experimental - By-value
RangeInclusiveiterator. - 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
Full Experimental - An unbounded range (
..). - Range
Inclusive Experimental - A range bounded inclusively below and above (
start..=end). - RangeTo
Experimental - A range only bounded exclusively above (
..end). - Range
ToInclusive Experimental - A range only bounded inclusively above (
..=end).
Enums§
- Bound
Experimental - An endpoint of a range of keys.
Traits§
- Into
Bounds Experimental - Used to convert a range into start and end bounds, consuming the range by value.
- 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.- Range
Bounds Experimental RangeBoundsis implemented by Rust’s built-in range types, produced by range syntax like..,a..,..b,..=c,d..e, orf..=g.- Step
Experimental - Objects that have a notion of successor and predecessor operations.