Struct RangeInclusive
1.26.0 · Source
pub struct RangeInclusive<Idx> { /* private fields */ }Expand description
A range bounded inclusively below and above (start..=end).
The RangeInclusive start..=end contains all values with x >= start
and x <= end. It is empty unless start <= end.
This iterator is fused, but the specific values of start and end after
iteration has finished are unspecified other than that .is_empty()
will return true once no more values will be produced.
§Examples
The start..=end syntax is a RangeInclusive:
assert_eq!((3..=5), std::ops::RangeInclusive::new(3, 5));
assert_eq!(3 + 4 + 5, (3..=5).sum());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[1.. ], [ 1, 2, 3, 4]);
assert_eq!(arr[1.. 3], [ 1, 2 ]);
assert_eq!(arr[1..=3], [ 1, 2, 3 ]); // This is a `RangeInclusive`Source§
1.27.0 (const: 1.32.0) · Source
Creates a new inclusive range. Equivalent to writing start..=end.
§Examples
use std::ops::RangeInclusive;
assert_eq!(3..=5, RangeInclusive::new(3, 5));1.27.0 (const: 1.32.0) · Source
Returns the lower bound of the range (inclusive).
When using an inclusive range for iteration, the values of start() and
end() are unspecified after the iteration ended. To determine
whether the inclusive range is empty, use the is_empty() method
instead of comparing start() > end().
Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.
§Examples
assert_eq!((3..=5).start(), &3);1.27.0 (const: 1.32.0) · Source
Returns the upper bound of the range (inclusive).
When using an inclusive range for iteration, the values of start()
and end() are unspecified after the iteration ended. To determine
whether the inclusive range is empty, use the is_empty() method
instead of comparing start() > end().
Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.
§Examples
assert_eq!((3..=5).end(), &5);Source§
1.35.0 (const: unstable) · Source
Returns true if item is contained in the range.
§Examples
assert!(!(3..=5).contains(&2));
assert!( (3..=5).contains(&3));
assert!( (3..=5).contains(&4));
assert!( (3..=5).contains(&5));
assert!(!(3..=5).contains(&6));
assert!( (3..=3).contains(&3));
assert!(!(3..=2).contains(&3));
assert!( (0.0..=1.0).contains(&1.0));
assert!(!(0.0..=1.0).contains(&f32::NAN));
assert!(!(0.0..=f32::NAN).contains(&0.0));
assert!(!(f32::NAN..=1.0).contains(&1.0));This method always returns false after iteration has finished:
let mut r = 3..=5;
assert!(r.contains(&3) && r.contains(&5));
for _ in r.by_ref() {}
// Precise field values are unspecified here
assert!(!r.contains(&3) && !r.contains(&5));1.47.0 (const: unstable) · Source
Returns true if the range contains no items.
§Examples
assert!(!(3..=5).is_empty());
assert!(!(3..=3).is_empty());
assert!( (3..=2).is_empty());The range is empty if either side is incomparable:
assert!(!(3.0..=5.0).is_empty());
assert!( (3.0..=f32::NAN).is_empty());
assert!( (f32::NAN..=5.0).is_empty());This method returns true after iteration has finished:
let mut r = 3..=5;
for _ in r.by_ref() {}
// Precise field values are unspecified here
assert!(r.is_empty());1.26.0 · Source§
Source§
This is the reverse version of Iterator::try_fold(): it takes
elements starting from the back of the iterator. Read more
Source§
An iterator method that reduces the iterator’s elements to a single, final value, starting from the back. Read more
1.26.0 · Source§
Source§
An iterator method that applies a function as long as it returns successfully, producing a single, final value. Read more
Source§
Folds every element into an accumulator by applying an operation, returning the final result. Read more
Source§
🔬This is a nightly-only experimental API. (iter_next_chunk #98326)
Advances the iterator and returns an array containing the next N values. Read more
Source§
🔬This is a nightly-only experimental API. (iter_advance_by #77404)
Advances the iterator by n elements. Read more
1.28.0 · Source§
Creates an iterator starting at the same point, but stepping by the given amount at each iteration. Read more
Source§
🔬This is a nightly-only experimental API. (iter_intersperse #79524)
Creates a new iterator which places a copy of separator between adjacent
items of the original iterator. Read more
Source§
🔬This is a nightly-only experimental API. (iter_intersperse #79524)
Creates a new iterator which places an item generated by separator
between adjacent items of the original iterator. Read more
1.0.0 · Source§
Takes a closure and creates an iterator which calls that closure on each element. Read more
1.0.0 · Source§
Creates an iterator which uses a closure to determine if an element should be yielded. Read more
1.0.0 · Source§
Creates an iterator which gives the current iteration count as well as the next value. Read more
1.0.0 · Source§
Creates an iterator which can use the peek and peek_mut methods
to look at the next element of the iterator without consuming it. See
their documentation for more information. Read more
1.57.0 · Source§
Creates an iterator that both yields elements based on a predicate and maps. Read more
1.0.0 · Source§
Creates an iterator that yields the first n elements, or fewer
if the underlying iterator ends sooner. Read more
1.0.0 · Source§
An iterator adapter which, like fold, holds internal state, but
unlike fold, produces a new iterator. Read more
Source§
🔬This is a nightly-only experimental API. (iter_map_windows #87155)
Calls the given function f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more
Source§
🔬This is a nightly-only experimental API. (iterator_try_collect #94047)
Fallibly transforms an iterator into a collection, short circuiting if a failure is encountered. Read more
Source§
🔬This is a nightly-only experimental API. (iter_collect_into #94780)
Collects all the items from an iterator into a collection. Read more
Source§
🔬This is a nightly-only experimental API. (iter_partition_in_place #62543)
Reorders the elements of this iterator in-place according to the given predicate,
such that all those that return true precede all those that return false.
Returns the number of true elements found. Read more
Source§
🔬This is a nightly-only experimental API. (iter_is_partitioned #62544)
Checks if the elements of this iterator are partitioned according to the given predicate,
such that all those that return true precede all those that return false. Read more
1.27.0 · Source§
An iterator method that applies a fallible function to each item in the iterator, stopping at the first error and returning that error. Read more
1.51.0 · Source§
Reduces the elements to a single one, by repeatedly applying a reducing operation. Read more
Source§
🔬This is a nightly-only experimental API. (iterator_try_reduce #87053)
Reduces the elements to a single one by repeatedly applying a reducing operation. If the closure returns a failure, the failure is propagated back to the caller immediately. Read more
1.30.0 · Source§
Applies function to the elements of iterator and returns the first non-none result. Read more
Source§
🔬This is a nightly-only experimental API. (try_find #63178)
Applies function to the elements of iterator and returns the first true result or the first error. Read more
1.0.0 · Source§
Searches for an element in an iterator from the right, returning its index. Read more
1.6.0 · Source§
Returns the element that gives the maximum value from the specified function. Read more
1.15.0 · Source§
Returns the element that gives the maximum value with respect to the specified comparison function. Read more
1.6.0 · Source§
Returns the element that gives the minimum value from the specified function. Read more
1.15.0 · Source§
Returns the element that gives the minimum value with respect to the specified comparison function. Read more
Source§
🔬This is a nightly-only experimental API. (iter_array_chunks #100450)
Returns an iterator over N elements of the iterator at a time. Read more
Source§
🔬This is a nightly-only experimental API. (iter_order_by #64295)
Lexicographically compares the elements of this Iterator with those
of another with respect to the specified comparison function. Read more
1.5.0 · Source§
Lexicographically compares the PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read more
Source§
🔬This is a nightly-only experimental API. (iter_order_by #64295)
Lexicographically compares the elements of this Iterator with those
of another with respect to the specified comparison function. Read more
Source§
🔬This is a nightly-only experimental API. (iter_order_by #64295)
Determines if the elements of this Iterator are equal to those of
another with respect to the specified equality function. Read more
1.5.0 · Source§
Determines if the elements of this Iterator are not equal to those of
another. Read more
1.28.0 (const: unstable) · Source§If you need to use this implementation where T is unsized,
consider using the RangeBounds impl for a 2-tuple of Bound<&T>,
i.e. replace start..=end with (Bound::Included(start), Bound::Included(end)).
If you need to use this implementation where T is unsized,
consider using the RangeBounds impl for a 2-tuple of Bound<&T>,
i.e. replace start..=end with (Bound::Included(start), Bound::Included(end)).
1.26.0 (const: unstable) · Source§The methods index and index_mut panic if:
The methods index and index_mut panic if:
- the start of the range is greater than the end of the range or
- the end of the range is out of bounds.
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§
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
1.26.0 (const: unstable) · Source§Implements substring slicing with syntax &self[begin ..= end] or &mut self[begin ..= end].
Implements substring slicing with syntax &self[begin ..= end] or &mut self[begin ..= end].
Returns a slice of the given string from the byte range
[begin, end]. Equivalent to &self [begin .. end + 1] or &mut self[begin .. end + 1], except if end has the maximum value for
usize.
This operation is O(1).
§Panics
Panics if begin does not point to the starting byte offset of
a character (as defined by is_char_boundary), if end does not point
to the ending byte offset of a character (end + 1 is either a starting
byte offset or equal to len), if begin > end, or if end >= len.
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