pub struct RangeFrom<Idx> {
pub start: Idx,
}
new_range_api
)Expand description
A range only bounded inclusively below (start..
).
The RangeFrom
start..
contains all values with x >= start
.
Note: Overflow in the Iterator
implementation (when the contained
data type reaches its numerical limit) is allowed to panic, wrap, or
saturate. This behavior is defined by the implementation of the Step
trait. For primitive integers, this follows the normal rules, and respects
the overflow checks profile (panic in debug, wrap in release). Note also
that overflow happens earlier than you might assume: the overflow happens
in the call to next
that yields the maximum value, as the range must be
set to a state to yield the next value.
ยงExamples
The start..
syntax is a RangeFrom
:
assert_eq!((2..), std::ops::RangeFrom { start: 2 });
assert_eq!(2 + 3 + 4, (2..).take(3).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]); // This is a `RangeFrom`
assert_eq!(arr[1.. 3], [ 1, 2 ]);
assert_eq!(arr[1..=3], [ 1, 2, 3 ]);
Fieldsยง
ยงstart: Idx
new_range_api
)The lower bound of the range (inclusive).
Implementationsยง
Sourceยงimpl<Idx> RangeFrom<Idx>where
Idx: PartialOrd,
impl<Idx> RangeFrom<Idx>where
Idx: PartialOrd,
1.35.0 ยท Sourcepub fn contains<U>(&self, item: &U) -> bool
pub fn contains<U>(&self, item: &U) -> bool
Returns true
if item
is contained in the range.
ยงExamples
assert!(!(3..).contains(&2));
assert!( (3..).contains(&3));
assert!( (3..).contains(&1_000_000_000));
assert!( (0.0..).contains(&0.5));
assert!(!(0.0..).contains(&f32::NAN));
assert!(!(f32::NAN..).contains(&0.5));
Trait Implementationsยง
Sourceยงimpl<'de, Idx> Deserialize<'de> for RangeFrom<Idx>where
Idx: Deserialize<'de>,
impl<'de, Idx> Deserialize<'de> for RangeFrom<Idx>where
Idx: Deserialize<'de>,
Sourceยงfn deserialize<D>(
deserializer: D,
) -> Result<RangeFrom<Idx>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<RangeFrom<Idx>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
1.0.0 ยท Sourceยงimpl<A> Iterator for RangeFrom<A>where
A: Step,
impl<A> Iterator for RangeFrom<A>where
A: Step,
Sourceยงfn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
Sourceยงfn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk
)N
values. Read more1.0.0 ยท Sourceยงfn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
1.0.0 ยท Sourceยงfn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Sourceยงfn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by
)n
elements. Read more1.28.0 ยท Sourceยงfn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> โwhere
Self: Sized,
1.0.0 ยท Sourceยงfn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> โ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> โ
1.0.0 ยท Sourceยงfn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> โwhere
Self: Sized,
U: IntoIterator,
Sourceยงfn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> โ
iter_intersperse
)separator
between adjacent
items of the original iterator. Read moreSourceยงfn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> โ
iter_intersperse
)separator
between adjacent items of the original iterator. Read more1.0.0 ยท Sourceยงfn map<B, F>(self, f: F) -> Map<Self, F> โ
fn map<B, F>(self, f: F) -> Map<Self, F> โ
1.21.0 ยท Sourceยงfn for_each<F>(self, f: F)
fn for_each<F>(self, f: F)
1.0.0 ยท Sourceยงfn filter<P>(self, predicate: P) -> Filter<Self, P> โ
fn filter<P>(self, predicate: P) -> Filter<Self, P> โ
1.0.0 ยท Sourceยงfn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> โ
1.0.0 ยท Sourceยงfn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> โwhere
Self: Sized,
1.0.0 ยท Sourceยงfn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> โ
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> โ
1.0.0 ยท Sourceยงfn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> โ
1.57.0 ยท Sourceยงfn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> โ
1.0.0 ยท Sourceยงfn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> โwhere
Self: Sized,
n
elements. Read more1.0.0 ยท Sourceยงfn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> โwhere
Self: Sized,
n
elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 ยท Sourceยงfn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> โ
1.29.0 ยท Sourceยงfn flatten(self) -> Flatten<Self> โ
fn flatten(self) -> Flatten<Self> โ
Sourceยงfn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> โ
iter_map_windows
)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 more1.0.0 ยท Sourceยงfn inspect<F>(self, f: F) -> Inspect<Self, F> โ
fn inspect<F>(self, f: F) -> Inspect<Self, F> โ
1.0.0 ยท Sourceยงfn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Sourceยงfn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
iterator_try_collect
)Sourceยงfn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into
)1.0.0 ยท Sourceยงfn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Sourceยงfn partition_in_place<'a, T, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
iter_partition_in_place
)true
precede all those that return false
.
Returns the number of true
elements found. Read moreSourceยงfn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned
)true
precede all those that return false
. Read more1.27.0 ยท Sourceยงfn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0 ยท Sourceยงfn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0 ยท Sourceยงfn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0 ยท Sourceยงfn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Sourceยงfn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce
)1.0.0 ยท Sourceยงfn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 ยท Sourceยงfn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 ยท Sourceยงfn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 ยท Sourceยงfn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Sourceยงfn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find
)1.0.0 ยท Sourceยงfn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 ยท Sourceยงfn rposition<P>(&mut self, predicate: P) -> Option<usize>
fn rposition<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 ยท Sourceยงfn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
1.0.0 ยท Sourceยงfn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
1.6.0 ยท Sourceยงfn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 ยท Sourceยงfn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 ยท Sourceยงfn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 ยท Sourceยงfn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 ยท Sourceยงfn rev(self) -> Rev<Self> โwhere
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self> โwhere
Self: Sized + DoubleEndedIterator,
1.0.0 ยท Sourceยงfn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 ยท Sourceยงfn copied<'a, T>(self) -> Copied<Self> โ
fn copied<'a, T>(self) -> Copied<Self> โ
Sourceยงfn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> โwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> โwhere
Self: Sized,
iter_array_chunks
)N
elements of the iterator at a time. Read more1.11.0 ยท Sourceยงfn product<P>(self) -> P
fn product<P>(self) -> P
Sourceยงfn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 ยท Sourceยงfn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
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 moreSourceยงfn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read moreSourceยงfn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by
)1.5.0 ยท Sourceยงfn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator
are lexicographically
less than those of another. Read more1.5.0 ยท Sourceยงfn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator
are lexicographically
less or equal to those of another. Read more1.5.0 ยท Sourceยงfn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than those of another. Read more1.5.0 ยท Sourceยงfn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than or equal to those of another. Read more1.82.0 ยท Sourceยงfn is_sorted(self) -> bool
fn is_sorted(self) -> bool
1.82.0 ยท Sourceยงfn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
1.82.0 ยท Sourceยงfn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
1.28.0 ยท Sourceยงimpl<T> RangeBounds<T> for RangeFrom<&T>
impl<T> RangeBounds<T> for RangeFrom<&T>
1.28.0 ยท Sourceยงimpl<T> RangeBounds<T> for RangeFrom<T>
impl<T> RangeBounds<T> for RangeFrom<T>
Sourceยงimpl<Idx> Serialize for RangeFrom<Idx>where
Idx: Serialize,
impl<Idx> Serialize for RangeFrom<Idx>where
Idx: Serialize,
Sourceยงfn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
1.15.0 ยท Sourceยงimpl<T> SliceIndex<[T]> for RangeFrom<usize>
impl<T> SliceIndex<[T]> for RangeFrom<usize>
The methods index
and index_mut
panic if the start of the range is out of bounds.
Sourceยงfn get(self, slice: &[T]) -> Option<&[T]>
fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods
)Sourceยงfn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods
)Sourceยงunsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
slice_index_methods
)Sourceยงunsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
slice_index_methods
)1.20.0 ยท Sourceยงimpl SliceIndex<str> for RangeFrom<usize>
impl SliceIndex<str> for RangeFrom<usize>
Implements substring slicing with syntax &self[begin ..]
or &mut self[begin ..]
.
Returns a slice of the given string from the byte range [begin
, len
).
Equivalent to &self[begin .. len]
or &mut self[begin .. len]
.
This operation is O(1).
Prior to 1.20.0, these indexing operations were still supported by
direct implementation of Index
and IndexMut
.
ยงPanics
Panics if begin
does not point to the starting byte offset of
a character (as defined by is_char_boundary
), or if begin > len
.
Sourceยงfn get(
self,
slice: &str,
) -> Option<&<RangeFrom<usize> as SliceIndex<str>>::Output>
fn get( self, slice: &str, ) -> Option<&<RangeFrom<usize> as SliceIndex<str>>::Output>
slice_index_methods
)Sourceยงfn get_mut(
self,
slice: &mut str,
) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>
fn get_mut( self, slice: &mut str, ) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>
slice_index_methods
)Sourceยงunsafe fn get_unchecked(
self,
slice: *const str,
) -> *const <RangeFrom<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked( self, slice: *const str, ) -> *const <RangeFrom<usize> as SliceIndex<str>>::Output
slice_index_methods
)Sourceยงunsafe fn get_unchecked_mut(
self,
slice: *mut str,
) -> *mut <RangeFrom<usize> as SliceIndex<str>>::Output
unsafe fn get_unchecked_mut( self, slice: *mut str, ) -> *mut <RangeFrom<usize> as SliceIndex<str>>::Output
slice_index_methods
)impl<Idx> Eq for RangeFrom<Idx>where
Idx: Eq,
impl<A> FusedIterator for RangeFrom<A>where
A: Step,
impl<T> OneSidedRange<T> for RangeFrom<T>where
RangeFrom<T>: RangeBounds<T>,
impl<Idx> StructuralPartialEq for RangeFrom<Idx>
impl<A> TrustedLen for RangeFrom<A>where
A: TrustedStep,
Auto Trait Implementationsยง
impl<Idx> Freeze for RangeFrom<Idx>where
Idx: Freeze,
impl<Idx> RefUnwindSafe for RangeFrom<Idx>where
Idx: RefUnwindSafe,
impl<Idx> Send for RangeFrom<Idx>where
Idx: Send,
impl<Idx> Sync for RangeFrom<Idx>where
Idx: Sync,
impl<Idx> Unpin for RangeFrom<Idx>where
Idx: Unpin,
impl<Idx> UnwindSafe for RangeFrom<Idx>where
Idx: UnwindSafe,
Blanket Implementationsยง
Sourceยงimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Sourceยงfn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Sourceยงimpl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Sourceยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Sourceยงimpl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Sourceยงfn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.