🔬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§
- legacyExperimental Legacy range types
Structs§
- IterRange Experimental By-valueRangeiterator.
- IterRange From Experimental By-valueRangeFromiterator.
- IterRange Inclusive Experimental By-valueRangeInclusiveiterator.
- RangeExperimental A (half-open) range bounded inclusively below and exclusively above (start..endin a future edition).
- RangeFrom Experimental A range only bounded inclusively below (start..).
- RangeFull Experimental An unbounded range (..).
- RangeInclusive Experimental A range bounded inclusively below and above (start..=end).
- RangeToExperimental A range only bounded exclusively above (..end).
- RangeToInclusive Experimental A range only bounded inclusively above (..=end).
Enums§
- BoundExperimental An endpoint of a range of keys.
Traits§
- OneSidedRange 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.
- RangeBounds Experimental RangeBoundsis implemented by Rust’s built-in range types, produced by range syntax like..,a..,..b,..=c,d..e, orf..=g.
- StepExperimental Objects that have a notion of successor and predecessor operations.