Skip to main content

RangeFrom

Struct RangeFrom 

1.96.0 · Source
pub struct RangeFrom<Idx> {
    pub start: Idx,
}
Expand description

A range only bounded inclusively below (start..).

The RangeFrom start.. contains all values with x >= start.

Note: Overflow in the IntoIterator 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). Unlike its legacy counterpart, the iterator will only panic after yielding the maximum value when overflow checks are enabled.

§Examples

The start.. syntax is a RangeFrom:

use core::range::RangeFrom;

assert_eq!(RangeFrom::from(2..), core::range::RangeFrom { start: 2 });
assert_eq!(2 + 3 + 4, RangeFrom::from(2..).into_iter().take(3).sum());

Fields§

§start: Idx

The lower bound of the range (inclusive).

Implementations§

Source§

impl<Idx: Step> RangeFrom<Idx>

1.96.0 · Source

pub fn iter(&self) -> RangeFromIter<Idx>

Creates an iterator over the elements within this range.

Shorthand for .clone().into_iter()

§Examples
use core::range::RangeFrom;

let mut i = RangeFrom::from(3..).iter().map(|n| n*n);
assert_eq!(i.next(), Some(9));
assert_eq!(i.next(), Some(16));
assert_eq!(i.next(), Some(25));
Source§

impl<Idx: PartialOrd<Idx>> RangeFrom<Idx>

1.96.0 (const: unstable) · Source

pub fn contains<U>(&self, item: &U) -> bool
where Idx: PartialOrd<U>, U: ?Sized + PartialOrd<Idx>,

Returns true if item is contained in the range.

§Examples
use core::range::RangeFrom;

assert!(!RangeFrom::from(3..).contains(&2));
assert!( RangeFrom::from(3..).contains(&3));
assert!( RangeFrom::from(3..).contains(&1_000_000_000));

assert!( RangeFrom::from(0.0..).contains(&0.5));
assert!(!RangeFrom::from(0.0..).contains(&f32::NAN));
assert!(!RangeFrom::from(f32::NAN..).contains(&0.5));

Trait Implementations§

1.96.0 (const: unstable) · Source§

impl<Idx: Clone> Clone for RangeFrom<Idx>

Source§

fn clone(&self) -> RangeFrom<Idx>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)
where Self:,

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Performs copy-assignment from source. Read more
1.96.0 · Source§

impl<Idx: Debug> Debug for RangeFrom<Idx>

Source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Formats the value using the given formatter. Read more
1.96.0 (const: unstable) · Source§

impl<T> From<RangeFrom<T>> for RangeFrom<T>

Source§

fn from(value: RangeFrom<T>) -> Self

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Converts to this type from the input type.
1.96.0 (const: unstable) · Source§

impl<T> From<RangeFrom<T>> for RangeFrom<T>

Source§

fn from(value: RangeFrom<T>) -> Self

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Converts to this type from the input type.
1.96.0 · Source§

impl<Idx: Hash> Hash for RangeFrom<Idx>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H: Hasher>(data: &[Self], state: &mut H)
where Self: Sized,

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Feeds a slice of this type into the given Hasher. Read more
1.96.0 · Source§

impl Index<RangeFrom<usize>> for CStr

Source§

type Output = CStr

The returned type after indexing.
Source§

fn index(&self, index: RangeFrom<usize>) -> &CStr

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Performs the indexing (container[index]) operation. Read more
Source§

impl<T> IntoBounds<T> for RangeFrom<T>

Source§

fn into_bounds(self) -> (Bound<T>, Bound<T>)

🔬This is a nightly-only experimental API. (range_into_bounds #136903)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Convert this range into the start and end bounds. Returns (start_bound, end_bound). Read more
Source§

fn intersect<R>(self, other: R) -> (Bound<T>, Bound<T>)
where Self: Sized, T: Ord, R: Sized + IntoBounds<T>,

🔬This is a nightly-only experimental API. (range_into_bounds #136903)
Compute the intersection of self and other. Read more
1.96.0 · Source§

impl<A: Step> IntoIterator for RangeFrom<A>

Source§

type Item = A

The type of the elements being iterated over.
Source§

type IntoIter = RangeFromIter<A>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Creates an iterator from a value. Read more
Source§

impl<T> OneSidedRange<T> for RangeFrom<T>
where Self: RangeBounds<T>,

Source§

fn bound(self) -> (OneSidedRangeBound, T)

🔬This is a nightly-only experimental API. (one_sided_range #69780)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
An internal-only helper function for split_off and split_off_mut that returns the bound of the one-sided range.
1.96.0 (const: unstable) · Source§

impl<Idx: PartialEq> PartialEq for RangeFrom<Idx>

Source§

fn eq(&self, other: &RangeFrom<Idx>) -> bool

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
1.96.0 (const: unstable) · Source§

impl<T> RangeBounds<T> for RangeFrom<&T>

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.. with (Bound::Included(start), Bound::Unbounded).

Source§

fn start_bound(&self) -> Bound<&T>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Start index bound. Read more
Source§

fn end_bound(&self) -> Bound<&T>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
End index bound. Read more
1.35.0 · Source§

fn contains<U>(&self, item: &U) -> bool
where T: PartialOrd<U>, U: ?Sized + PartialOrd<T>,

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns true if item is contained in the range. Read more
Source§

fn is_empty(&self) -> bool
where T: PartialOrd,

🔬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.96.0 (const: unstable) · Source§

impl<T> RangeBounds<T> for RangeFrom<T>

Source§

fn start_bound(&self) -> Bound<&T>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Start index bound. Read more
Source§

fn end_bound(&self) -> Bound<&T>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
End index bound. Read more
1.35.0 · Source§

fn contains<U>(&self, item: &U) -> bool
where T: PartialOrd<U>, U: ?Sized + PartialOrd<T>,

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns true if item is contained in the range. Read more
Source§

fn is_empty(&self) -> bool
where T: PartialOrd,

🔬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.96.0 (const: unstable) · Source§

impl<T> SliceIndex<[T]> for RangeFrom<usize>

Source§

type Output = [T]

The output type returned by methods.
Source§

fn get(self, slice: &[T]) -> Option<&[T]>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, if in bounds.
Source§

fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, if in bounds.
Source§

unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a pointer to the output at this location, without performing any bounds checking. Read more
Source§

unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable pointer to the output at this location, without performing any bounds checking. Read more
Source§

fn index(self, slice: &[T]) -> &[T]

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, panicking if out of bounds.
Source§

fn index_mut(self, slice: &mut [T]) -> &mut [T]

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, panicking if out of bounds.
Source§

impl SliceIndex<ByteStr> for RangeFrom<usize>

Source§

type Output = ByteStr

The output type returned by methods.
Source§

fn get(self, slice: &ByteStr) -> Option<&Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, if in bounds.
Source§

fn get_mut(self, slice: &mut ByteStr) -> Option<&mut Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, if in bounds.
Source§

unsafe fn get_unchecked(self, slice: *const ByteStr) -> *const Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a pointer to the output at this location, without performing any bounds checking. Read more
Source§

unsafe fn get_unchecked_mut(self, slice: *mut ByteStr) -> *mut Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable pointer to the output at this location, without performing any bounds checking. Read more
Source§

fn index(self, slice: &ByteStr) -> &Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, panicking if out of bounds.
Source§

fn index_mut(self, slice: &mut ByteStr) -> &mut Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, panicking if out of bounds.
1.96.0 (const: unstable) · Source§

impl SliceIndex<str> for RangeFrom<usize>

Source§

type Output = str

The output type returned by methods.
Source§

fn get(self, slice: &str) -> Option<&Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, if in bounds.
Source§

fn get_mut(self, slice: &mut str) -> Option<&mut Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, if in bounds.
Source§

unsafe fn get_unchecked(self, slice: *const str) -> *const Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a pointer to the output at this location, without performing any bounds checking. Read more
Source§

unsafe fn get_unchecked_mut(self, slice: *mut str) -> *mut Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable pointer to the output at this location, without performing any bounds checking. Read more
Source§

fn index(self, slice: &str) -> &Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a shared reference to the output at this location, panicking if out of bounds.
Source§

fn index_mut(self, slice: &mut str) -> &mut Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Returns a mutable reference to the output at this location, panicking if out of bounds.
1.96.0 · Source§

impl<Idx: Copy> Copy for RangeFrom<Idx>

1.96.0 (const: unstable) · Source§

impl<Idx: Eq> Eq for RangeFrom<Idx>

1.96.0 · Source§

impl<Idx> StructuralPartialEq for RangeFrom<Idx>

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> UnsafeUnpin for RangeFrom<Idx>
where Idx: UnsafeUnpin,

§

impl<Idx> UnwindSafe for RangeFrom<Idx>
where Idx: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit #126799)
This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

This item is validated for IEC 61508 (SIL 2) and ISO 26262 (ASIL B).
Performs the conversion.