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: Idxnew_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>,
Sourceยงimpl<T> IntoBounds<T> for RangeFrom<T>
 
impl<T> IntoBounds<T> for RangeFrom<T>
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
Sourceยงimpl<T> OneSidedRange<T> for RangeFrom<T>where
    RangeFrom<T>: RangeBounds<T>,
 
impl<T> OneSidedRange<T> for RangeFrom<T>where
    RangeFrom<T>: RangeBounds<T>,
Sourceยงfn bound(self) -> (OneSidedRangeBound, T)
 
fn bound(self) -> (OneSidedRangeBound, T)
one_sided_range)split_off and
split_off_mut that returns the bound of the one-sided range.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>
The methods index and index_mut panic if the start of the range is out of bounds.
 
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>
Implements substring slicing with syntax &self[begin ..] or &mut self[begin ..].
 
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<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ยงfn equivalent(&self, key: &K) -> bool
 
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.