RangeToInclusive in core::range - Rust (original) (raw)

Struct RangeToInclusive

Source

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)

Source§

Source

🔬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));

Source§

Source§

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Converts to this type from the input type.

Source§

Source§

Source§

🔬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

Source§

🔬This is a nightly-only experimental API. (range_into_bounds #136903)

Compute the intersection of self and other. Read more

Source§

Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Source§

Source§

Source§

1.35.0 · Source§

Returns true if item is contained in the range. Read more

Source§

🔬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.

Source§

The output type returned by methods.

Source§

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a shared reference to the output at this location, if in bounds.

Source§

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a mutable reference to the output at this location, if in bounds.

Source§

🔬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

Source§

🔬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

Source§

🔬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.

Source§

🔬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.

Source§

Source§

Source§