Struct std::ops::RangeTo
pub struct RangeTo<Idx> {
    pub end: Idx,
}
A range only bounded exclusively above (..end).
The RangeTo ..end contains all values with x < end. It cannot serve as an Iterator because it doesn’t have a starting point.
Examples
The ..end syntax is a RangeTo:
assert_eq!((..5), std::ops::RangeTo { end: 5 });It does not have an IntoIterator implementation, so you can’t use it in a for loop directly. This won’t compile:
// error[E0277]: the trait bound `std::ops::RangeTo<{integer}>:
// std::iter::Iterator` is not satisfied
for i in ..5 {
    // ...
}When used as a slicing index, RangeTo produces a slice of all array elements before the index indicated by end.
let arr = [0, 1, 2, 3, 4]; assert_eq!(arr[ .. ], [0, 1, 2, 3, 4]); assert_eq!(arr[ .. 3], [0, 1, 2 ]); // This is a `RangeTo` 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 ]);
Fields
end: IdxThe upper bound of the range (exclusive).
Implementations
impl<Idx> RangeTo<Idx> where
 Idx: PartialOrd<Idx>, 
pub fn contains<U>(&self, item: &U) -> bool where
 U: PartialOrd<Idx> + ?Sized,
 Idx: PartialOrd<U>, 
Returns true if item is contained in the range.
Examples
assert!( (..5).contains(&-1_000_000_000)); assert!( (..5).contains(&4)); assert!(!(..5).contains(&5)); assert!( (..1.0).contains(&0.5)); assert!(!(..1.0).contains(&f32::NAN)); assert!(!(..f32::NAN).contains(&0.5));
Trait Implementations
pub fn clone(&self) -> RangeTo<Idx>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source. Read more
pub fn fmt(&self, fmt: &mut Formatter<'_>) -> Result<(), Error>
Formats the value using the given formatter. Read more
impl Index<RangeTo<usize>> for String
type Output = str
The returned type after indexing.
pub fn index(&self, index: RangeTo<usize>) -> &str
Performs the indexing (container[index]) operation. Read more
impl IndexMut<RangeTo<usize>> for String
pub fn index_mut(&mut self, index: RangeTo<usize>) -> &mut str
Performs the mutable indexing (container[index]) operation. Read more
pub fn eq(&self, other: &RangeTo<Idx>) -> bool
This method tests for self and other values to be equal, and is used by ==. Read more
pub fn ne(&self, other: &RangeTo<Idx>) -> bool
This method tests for !=.
impl<T> RangeBounds<T> for RangeTo<T>
pub fn start_bound(&self) -> Bound<&T>
Start index bound. Read more
pub fn end_bound(&self) -> Bound<&T>
End index bound. Read more
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<'_, T> RangeBounds<T> for RangeTo<&'_ T>
pub fn start_bound(&self) -> Bound<&T>
Start index bound. Read more
pub fn end_bound(&self) -> Bound<&T>
End index bound. Read more
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<T> SliceIndex<[T]> for RangeTo<usize>
type Output = [T]
The output type returned by methods.
pub fn get(self, slice: &[T]) -> Option<&[T]>
slice_index_methods)Returns a shared reference to the output at this location, if in bounds. Read more
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>
slice_index_methods)Returns a mutable reference to the output at this location, if in bounds. Read more
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T]
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. Read more
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T]
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. Read more
pub fn index(self, slice: &[T]) -> &[T]
slice_index_methods)Returns a shared reference to the output at this location, panicking if out of bounds. Read more
pub fn index_mut(self, slice: &mut [T]) -> &mut [T]
slice_index_methods)Returns a mutable reference to the output at this location, panicking if out of bounds. Read more
impl SliceIndex<str> for RangeTo<usize>
Implements substring slicing with syntax &self[.. end] or &mut self[.. end].
Returns a slice of the given string from the byte range [0, end). Equivalent to &self[0 .. end] or &mut self[0 .. end].
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 end does not point to the starting byte offset of a character (as defined by is_char_boundary), or if end > len.
type Output = str
The output type returned by methods.
pub fn get(
 self, 
 slice: &str
) -> Option<&<RangeTo<usize> as SliceIndex<str>>::Output>
slice_index_methods)Returns a shared reference to the output at this location, if in bounds. Read more
pub fn get_mut(
 self, 
 slice: &mut str
) -> Option<&mut <RangeTo<usize> as SliceIndex<str>>::Output>
slice_index_methods)Returns a mutable reference to the output at this location, if in bounds. Read more
pub unsafe fn get_unchecked(
 self, 
 slice: *const str
) -> *const <RangeTo<usize> as SliceIndex<str>>::Output
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. Read more
pub unsafe fn get_unchecked_mut(
 self, 
 slice: *mut str
) -> *mut <RangeTo<usize> as SliceIndex<str>>::Output
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. Read more
pub fn index(self, slice: &str) -> &<RangeTo<usize> as SliceIndex<str>>::Output
slice_index_methods)Returns a shared reference to the output at this location, panicking if out of bounds. Read more
pub fn index_mut(
 self, 
 slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output
slice_index_methods)Returns a mutable reference to the output at this location, panicking if out of bounds. Read more
impl<Idx> StructuralEq for RangeTo<Idx>
impl<Idx> StructuralPartialEq for RangeTo<Idx>
Auto Trait Implementations
impl<Idx> RefUnwindSafe for RangeTo<Idx> where
 Idx: RefUnwindSafe, 
impl<Idx> Send for RangeTo<Idx> where
 Idx: Send, 
impl<Idx> Sync for RangeTo<Idx> where
 Idx: Sync, 
impl<Idx> Unpin for RangeTo<Idx> where
 Idx: Unpin, 
impl<Idx> UnwindSafe for RangeTo<Idx> where
 Idx: UnwindSafe, 
Blanket Implementations
impl<T> From<T> for T
pub fn from(t: T) -> T
Performs the conversion.
pub fn into(self) -> U
Performs the conversion.
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
toowned_clone_into #41263)recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
Performs the conversion.
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
Performs the conversion.
    © 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
    https://doc.rust-lang.org/std/ops/struct.RangeTo.html