RangeToInclusive in core::range - Rust (original) (raw)
Struct RangeToInclusive
pub struct RangeToInclusive<Idx> {
pub last: Idx,
}🔬This is a nightly-only experimental API. (new_range_api #125687)
Expand description
A range only bounded inclusively above (..=last).
The RangeToInclusive ..=last contains all values with x <= last. It cannot serve as an Iterator because it doesn’t have a starting point.
§Examples
The ..=last syntax is a RangeToInclusive:
#![feature(new_range_api)]
#![feature(new_range)]
assert_eq!((..=5), std::range::RangeToInclusive{ last: 5 });It does not have an IntoIterator implementation, so you can’t use it in afor loop directly. This won’t compile:
// error[E0277]: the trait bound `std::range::RangeToInclusive<{integer}>:
// std::iter::Iterator` is not satisfied
for i in ..=5 {
// ...
}When used as a slicing index, RangeToInclusive produces a slice of all array elements up to and including the index indicated by last.
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 ]); // This is a `RangeToInclusive`
assert_eq!(arr[1.. ], [ 1, 2, 3, 4]);
assert_eq!(arr[1.. 3], [ 1, 2 ]);
assert_eq!(arr[1..=3], [ 1, 2, 3 ]);🔬This is a nightly-only experimental API. (new_range_api #125687)
The upper bound of the range (inclusive)
🔬This is a nightly-only experimental API. (new_range_api #125687)
Returns true if item is contained in the range.
§Examples
assert!( (..=5).contains(&-1_000_000_000));
assert!( (..=5).contains(&5));
assert!(!(..=5).contains(&6));
assert!( (..=1.0).contains(&1.0));
assert!(!(..=1.0).contains(&f32::NAN));
assert!(!(..=f32::NAN).contains(&0.5));
Converts to this type from the input type.
Converts to this type from the input type.
🔬This is a nightly-only experimental API. (range_into_bounds #136903)
Convert this range into the start and end bounds. Returns (start_bound, end_bound). Read more
🔬This is a nightly-only experimental API. (range_into_bounds #136903)
Compute the intersection of self and other. Read more
Tests for self and other values to be equal, and is used by ==.
Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Returns true if item is contained in the range. Read more
🔬This is a nightly-only experimental API. (range_bounds_is_empty #137300)
Returns true if the range contains no items. One-sided ranges (RangeFrom, etc) always return false. Read more
1.26.0 (const: unstable) · Source§
The methods index and index_mut panic if the end of the range is out of bounds.
The output type returned by methods.
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in bounds.
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in bounds.
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a pointer to the output at this location, without performing any bounds checking. Read more
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable pointer to the output at this location, without performing any bounds checking. Read more
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking if out of bounds.
🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking if out of bounds.