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<C1> ContainsToken<C1> for RangeFullwhere
C1: AsChar,
impl<C1> ContainsToken<C1> for RangeFullwhere
C1: AsChar,
source§fn contains_token(&self, _token: C1) -> bool
fn contains_token(&self, _token: C1) -> bool
1.0.0 · source§impl PartialEq for RangeFull
impl PartialEq for RangeFull
1.28.0 · source§impl<T> RangeBounds<T> for RangeFullwhere
T: ?Sized,
impl<T> RangeBounds<T> for RangeFullwhere
T: ?Sized,
1.15.0 (const: unstable) · source§impl<T> SliceIndex<[T]> for RangeFull
impl<T> SliceIndex<[T]> for RangeFull
const: unstable · source§fn get(self, slice: &[T]) -> Option<&[T]>
fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods)const: unstable · source§fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods)const: unstable · source§unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
slice_index_methods)slice pointer
is undefined behavior even if the resulting pointer is not used.const: unstable · 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)slice pointer
is undefined behavior even if the resulting pointer is not used.1.20.0 (const: unstable) · source§impl SliceIndex<str> for RangeFull
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].
const: unstable · source§fn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>
fn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>
slice_index_methods)const: unstable · source§fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>
fn get_mut( self, slice: &mut str ) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>
slice_index_methods)const: unstable · source§unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeFull as SliceIndex<str>>::Output
unsafe fn get_unchecked( self, slice: *const str ) -> *const <RangeFull as SliceIndex<str>>::Output
slice_index_methods)slice pointer
is undefined behavior even if the resulting pointer is not used.const: unstable · source§unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeFull as SliceIndex<str>>::Output
unsafe fn get_unchecked_mut( self, slice: *mut str ) -> *mut <RangeFull as SliceIndex<str>>::Output
slice_index_methods)slice pointer
is undefined behavior even if the resulting pointer is not used.impl Copy for RangeFull
impl Eq for RangeFull
impl StructuralPartialEq for RangeFull
Auto Trait Implementations§
impl Freeze for RangeFull
impl RefUnwindSafe for RangeFull
impl Send for RangeFull
impl Sync for RangeFull
impl Unpin for RangeFull
impl UnwindSafe for RangeFull
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> DefaultForNetwork for Twhere
T: Default,
impl<T> DefaultForNetwork for Twhere
T: Default,
fn default_for_network(_: &NetworkDefinition) -> T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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.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.source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more