Struct enso_prelude::RangeTo1.0.0[][src]

pub struct RangeTo<Idx> {
    pub end: Idx,
}
Expand description

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: Idx

The upper bound of the range (exclusive).

Implementations

impl<Idx> RangeTo<Idx> where
    Idx: PartialOrd<Idx>, 
[src]

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

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

impl<Idx> Clone for RangeTo<Idx> where
    Idx: Clone
[src]

pub fn clone(&self) -> RangeTo<Idx>[src]

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more

impl<Idx> Debug for RangeTo<Idx> where
    Idx: Debug
[src]

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

Formats the value using the given formatter. Read more

impl<Idx> Hash for RangeTo<Idx> where
    Idx: Hash
[src]

pub fn hash<__H>(&self, state: &mut __H) where
    __H: Hasher
[src]

Feeds this value into the given Hasher. Read more

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

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

impl Index<RangeTo<usize>> for String[src]

type Output = str

The returned type after indexing.

pub fn index(&self, index: RangeTo<usize>) -> &str[src]

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

impl IndexMut<RangeTo<usize>> for String1.3.0[src]

pub fn index_mut(&mut self, index: RangeTo<usize>) -> &mut str[src]

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

impl<Idx> PartialEq<RangeTo<Idx>> for RangeTo<Idx> where
    Idx: PartialEq<Idx>, 
[src]

pub fn eq(&self, other: &RangeTo<Idx>) -> bool[src]

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[src]

This method tests for !=.

impl<'_, T> RangeBounds<T> for RangeTo<&'_ T>1.28.0[src]

pub fn start_bound(&self) -> Bound<&T>[src]

Start index bound. Read more

pub fn end_bound(&self) -> Bound<&T>[src]

End index bound. Read more

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

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

impl<T> RangeBounds<T> for RangeTo<T>1.28.0[src]

pub fn start_bound(&self) -> Bound<&T>[src]

Start index bound. Read more

pub fn end_bound(&self) -> Bound<&T>[src]

End index bound. Read more

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

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

impl<T> SliceIndex<[T]> for RangeTo<usize>1.15.0[src]

type Output = [T]

The output type returned by methods.

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

🔬 This is a nightly-only experimental API. (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]>[src]

🔬 This is a nightly-only experimental API. (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][src]

🔬 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. Read more

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

🔬 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. Read more

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

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

🔬 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. Read more

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

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

🔬 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. Read more

impl SliceIndex<str> for RangeTo<usize>1.20.0[src]

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>
[src]

🔬 This is a nightly-only experimental API. (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>
[src]

🔬 This is a nightly-only experimental API. (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
[src]

🔬 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. Read more

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeTo<usize> as SliceIndex<str>>::Output
[src]

🔬 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. Read more

pub fn index(self, slice: &str) -> &<RangeTo<usize> as SliceIndex<str>>::Output[src]

🔬 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. Read more

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output
[src]

🔬 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. Read more

impl<D> SliceRange<D> for RangeTo<usize> where
    D: Dim
[src]

type Size = Dynamic

Type of the range size. May be a type-level integer.

pub fn begin(&self, D) -> usize[src]

The start index of the range.

pub fn end(&self, D) -> usize[src]

The index immediately after the last index inside of the range.

pub fn size(&self, D) -> <RangeTo<usize> as SliceRange<D>>::Size[src]

The number of elements of the range, i.e., self.end - self.begin.

impl<Idx> Copy for RangeTo<Idx> where
    Idx: Copy
[src]

impl<Idx> Eq for RangeTo<Idx> where
    Idx: Eq
[src]

impl<Idx> StructuralEq for RangeTo<Idx>[src]

impl<Idx> StructuralPartialEq for RangeTo<Idx>[src]

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> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> Scalar for T where
    T: Copy + PartialEq<T> + Debug + Any
[src]

pub fn inlined_clone(&self) -> T[src]

Performance hack: Clone doesn’t get inlined for Copy types in debug mode, so make it inline anyway.

fn is<T>() -> bool where
    T: Scalar
[src]

Tests if Self the same as the type T Read more

impl<SS, SP> SupersetOf<SS> for SP where
    SS: SubsetOf<SP>, 

pub fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more

pub fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).

pub fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.

pub fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.

impl<T> ToImpl for T[src]

fn to<P>(self) -> P where
    Self: Into<P>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

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>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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>[src]

Performs the conversion.