pub struct RangeFull;
Expand description

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.

§Examples

The .. syntax is a RangeFull:

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

It does not have an IntoIterator implementation, so you can’t use it in a for loop directly. This won’t 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]); // This is the `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   ]);

Trait Implementations§

source§

impl Clone for RangeFull

source§

fn clone(&self) -> RangeFull

Returns a copy of the value. Read more
source§

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

Performs copy-assignment from source. Read more
source§

impl Debug for RangeFull

source§

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

Formats the value using the given formatter. Read more
source§

impl Default for RangeFull

source§

fn default() -> RangeFull

Returns the “default value” for a type. Read more
source§

impl Hash for RangeFull

source§

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

Feeds this value into the given Hasher. Read more
1.3.0 · source§

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

Feeds a slice of this type into the given Hasher. Read more
1.7.0 · source§

impl Index<RangeFull> for CString

§

type Output = CStr

The returned type after indexing.
source§

fn index(&self, _index: RangeFull) -> &CStr

Performs the indexing (container[index]) operation. Read more
source§

impl<K, V, S> Index<RangeFull> for IndexMap<K, V, S>

§

type Output = Slice<K, V>

The returned type after indexing.
source§

fn index( &self, range: RangeFull ) -> &<IndexMap<K, V, S> as Index<RangeFull>>::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<T, S> Index<RangeFull> for IndexSet<T, S>

§

type Output = Slice<T>

The returned type after indexing.
source§

fn index( &self, range: RangeFull ) -> &<IndexSet<T, S> as Index<RangeFull>>::Output

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for KeyPair

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for Message

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
source§

impl Index<RangeFull> for OsString

§

type Output = OsStr

The returned type after indexing.
source§

fn index(&self, _index: RangeFull) -> &OsStr

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for PublicKey

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for RecoverableSignature

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for SecretKey

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for Signature

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for Signature

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
source§

impl<K, V> Index<RangeFull> for Slice<K, V>

§

type Output = Slice<K, V>

The returned type after indexing.
source§

fn index(&self, range: RangeFull) -> &Slice<K, V>

Performs the indexing (container[index]) operation. Read more
source§

impl<T> Index<RangeFull> for Slice<T>

§

type Output = Slice<T>

The returned type after indexing.
source§

fn index(&self, range: RangeFull) -> &<Slice<T> as Index<RangeFull>>::Output

Performs the indexing (container[index]) operation. Read more
source§

impl Index<RangeFull> for String

§

type Output = str

The returned type after indexing.
source§

fn index(&self, _index: RangeFull) -> &str

Performs the indexing (container[index]) operation. Read more
§

impl Index<RangeFull> for XOnlyPublicKey

§

type Output = [u8]

The returned type after indexing.
§

fn index(&self, _: RangeFull) -> &[u8]

Performs the indexing (container[index]) operation. Read more
source§

impl<K, V, S> IndexMut<RangeFull> for IndexMap<K, V, S>

source§

fn index_mut( &mut self, range: RangeFull ) -> &mut <IndexMap<K, V, S> as Index<RangeFull>>::Output

Performs the mutable indexing (container[index]) operation. Read more
1.44.0 · source§

impl IndexMut<RangeFull> for OsString

source§

fn index_mut(&mut self, _index: RangeFull) -> &mut OsStr

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<K, V> IndexMut<RangeFull> for Slice<K, V>

source§

fn index_mut(&mut self, range: RangeFull) -> &mut Slice<K, V>

Performs the mutable indexing (container[index]) operation. Read more
1.3.0 · source§

impl IndexMut<RangeFull> for String

source§

fn index_mut(&mut self, _index: RangeFull) -> &mut str

Performs the mutable indexing (container[index]) operation. Read more
source§

impl PartialEq for RangeFull

source§

fn eq(&self, other: &RangeFull) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
1.28.0 · source§

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

source§

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

Start index bound. Read more
source§

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

End index bound. Read more
1.35.0 · source§

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
1.15.0 (const: unstable) · source§

impl<T> SliceIndex<[T]> for RangeFull

§

type Output = [T]

The output type returned by methods.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in bounds.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in bounds.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-bounds index or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-bounds index or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking if out of bounds.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking if out of bounds.
1.20.0 (const: unstable) · source§

impl SliceIndex<str> for RangeFull

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.
const: unstable · source§

fn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, if in bounds.
const: unstable · source§

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

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, if in bounds.
const: unstable · source§

unsafe fn get_unchecked( self, slice: *const str ) -> *const <RangeFull as SliceIndex<str>>::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-bounds index or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
const: unstable · source§

unsafe fn get_unchecked_mut( self, slice: *mut str ) -> *mut <RangeFull as SliceIndex<str>>::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, without performing any bounds checking. Calling this method with an out-of-bounds index or a dangling slice pointer is undefined behavior even if the resulting reference is not used.
const: unstable · source§

fn index(self, slice: &str) -> &<RangeFull as SliceIndex<str>>::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a shared reference to the output at this location, panicking if out of bounds.
const: unstable · source§

fn index_mut( self, slice: &mut str ) -> &mut <RangeFull as SliceIndex<str>>::Output

🔬This is a nightly-only experimental API. (slice_index_methods)
Returns a mutable reference to the output at this location, panicking if out of bounds.
source§

impl Copy for RangeFull

source§

impl Eq for RangeFull

source§

impl StructuralPartialEq for RangeFull

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<U> As for U

§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
source§

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

source§

fn borrow(&self) -> &T

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

Mutably borrows from an owned value. Read more
§

impl<T> CallHasher for T
where T: Hash + ?Sized,

§

fn get_hash<H, B>(value: &H, build_hasher: &B) -> u64
where H: Hash + ?Sized, B: BuildHasher,

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

fn into(self) -> U

Calls U::from(self).

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

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

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

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

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

§

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>

Performs the conversion.
source§

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.
source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V