1.0.0[][src]Struct std::ops::RangeFull

pub struct RangeFull;

An unbounded range (..).

RangeFull is primarily used as a slicing index, its shorthand is ... It cannot serve as an Iterator because it doesn't have a starting point.


The .. syntax is a RangeFull:

assert_eq!((..), std::ops::RangeFull);Run

It does not have an IntoIterator implementation, so you can't use it in a for loop directly. This won't compile:

This example deliberately fails to compile
for i in .. {
   // ...

Used as a slicing index, RangeFull produces the full array as a slice.

let arr = [0, 1, 2, 3, 4];
assert_eq!(arr[ ..  ], [0,1,2,3,4]);  // RangeFull
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  ]);Run

Trait Implementations

impl<T> RangeBounds<T> for RangeFull where
    T: ?Sized

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

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

impl Clone for RangeFull[src]

fn clone_from(&mut self, source: &Self)[src]

Performs copy-assignment from source. Read more

impl Hash for RangeFull[src]

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

Feeds a slice of this type into the given [Hasher]. Read more

impl Copy for RangeFull[src]

impl Eq for RangeFull[src]

impl<T> SliceIndex<[T]> for RangeFull1.15.0[src]

type Output = [T]

The output type returned by methods.

impl SliceIndex<str> for RangeFull1.20.0[src]

Implements substring slicing with syntax &self[..] or &mut self[..].

Returns a slice of the whole string, i.e., returns &self or &mut self. Equivalent to &self[0 .. len] or &mut self[0 .. len]. Unlike other indexing operations, this can never panic.

This operation is O(1).

Prior to 1.20.0, these indexing operations were still supported by direct implementation of Index and IndexMut.

Equivalent to &self[0 .. len] or &mut self[0 .. len].

type Output = str

The output type returned by methods.

impl PartialEq<RangeFull> for RangeFull[src]

#[must_use] fn ne(&self, other: &Rhs) -> bool[src]

This method tests for !=.

impl Debug for RangeFull[src]

impl Index<RangeFull> for String[src]

type Output = str

The returned type after indexing.

impl IndexMut<RangeFull> for String1.3.0[src]

impl Index<RangeFull> for CString1.7.0[src]

type Output = CStr

The returned type after indexing.

impl Index<RangeFull> for OsString[src]

type Output = OsStr

The returned type after indexing.

Auto Trait Implementations

impl UnwindSafe for RangeFull

impl RefUnwindSafe for RangeFull

impl Unpin for RangeFull

impl Sync for RangeFull

impl Send for RangeFull

Blanket Implementations

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

type Error = Infallible

The type returned in the event of a conversion error.

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

impl<T> From<T> for T[src]

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

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

The type returned in the event of a conversion error.

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

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

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

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.