1.26.0[][src]Struct un_algebra::tests::float::RangeInclusive

pub struct RangeInclusive<Idx> { /* fields omitted */ }

A range bounded inclusively below and above (start..=end).

The RangeInclusive start..=end contains all values with x >= start and x <= end. It is empty unless start <= end.

This iterator is fused, but the specific values of start and end after iteration has finished are unspecified other than that .is_empty() will return true once no more values will be produced.

Examples

assert_eq!((3..=5), std::ops::RangeInclusive::new(3, 5));
assert_eq!(3 + 4 + 5, (3..=5).sum());

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

Methods

impl<Idx> RangeInclusive<Idx>[src]

Important traits for RangeInclusive<A>
pub const fn new(start: Idx, end: Idx) -> RangeInclusive<Idx>1.27.0[src]

Creates a new inclusive range. Equivalent to writing start..=end.

Examples

use std::ops::RangeInclusive;

assert_eq!(3..=5, RangeInclusive::new(3, 5));

pub const fn start(&self) -> &Idx1.27.0[src]

Returns the lower bound of the range (inclusive).

When using an inclusive range for iteration, the values of start() and end() are unspecified after the iteration ended. To determine whether the inclusive range is empty, use the is_empty() method instead of comparing start() > end().

Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.

Examples

assert_eq!((3..=5).start(), &3);

pub const fn end(&self) -> &Idx1.27.0[src]

Returns the upper bound of the range (inclusive).

When using an inclusive range for iteration, the values of start() and end() are unspecified after the iteration ended. To determine whether the inclusive range is empty, use the is_empty() method instead of comparing start() > end().

Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.

Examples

assert_eq!((3..=5).end(), &5);

pub fn into_inner(self) -> (Idx, Idx)1.27.0[src]

Destructures the RangeInclusive into (lower bound, upper (inclusive) bound).

Note: the value returned by this method is unspecified after the range has been iterated to exhaustion.

Examples

assert_eq!((3..=5).into_inner(), (3, 5));

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

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

Returns true if item is contained in the range.

Examples

use std::f32;

assert!(!(3..=5).contains(&2));
assert!( (3..=5).contains(&3));
assert!( (3..=5).contains(&4));
assert!( (3..=5).contains(&5));
assert!(!(3..=5).contains(&6));

assert!( (3..=3).contains(&3));
assert!(!(3..=2).contains(&3));

assert!( (0.0..=1.0).contains(&1.0));
assert!(!(0.0..=1.0).contains(&f32::NAN));
assert!(!(0.0..=f32::NAN).contains(&0.0));
assert!(!(f32::NAN..=1.0).contains(&1.0));

pub fn is_empty(&self) -> bool[src]

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

recently added

Returns true if the range contains no items.

Examples

#![feature(range_is_empty)]

assert!(!(3..=5).is_empty());
assert!(!(3..=3).is_empty());
assert!( (3..=2).is_empty());

The range is empty if either side is incomparable:

#![feature(range_is_empty)]

use std::f32::NAN;
assert!(!(3.0..=5.0).is_empty());
assert!( (3.0..=NAN).is_empty());
assert!( (NAN..=5.0).is_empty());

This method returns true after iteration has finished:

#![feature(range_is_empty)]

let mut r = 3..=5;
for _ in r.by_ref() {}
// Precise field values are unspecified here
assert!(r.is_empty());

Trait Implementations

impl SliceIndex<str> for RangeInclusive<usize>[src]

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

Returns a slice of the given string from the byte range [begin, end]. Equivalent to &self [begin .. end + 1] or &mut self[begin .. end + 1], except if end has the maximum value for usize.

This operation is O(1).

Panics

Panics if begin does not point to the starting byte offset of a character (as defined by is_char_boundary), if end does not point to the ending byte offset of a character (end + 1 is either a starting byte offset or equal to len), if begin > end, or if end >= len.

type Output = str

The output type returned by methods.

impl<T> SliceIndex<[T]> for RangeInclusive<usize>[src]

type Output = [T]

The output type returned by methods.

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

impl<A> Iterator for RangeInclusive<A> where
    A: Step
[src]

type Item = A

The type of the elements being iterated over.

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

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

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

impl ExactSizeIterator for RangeInclusive<u8>[src]

impl ExactSizeIterator for RangeInclusive<i16>[src]

impl ExactSizeIterator for RangeInclusive<i8>[src]

impl ExactSizeIterator for RangeInclusive<u16>[src]

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

impl TrustedLen for RangeInclusive<u32>[src]

impl TrustedLen for RangeInclusive<u128>[src]

impl TrustedLen for RangeInclusive<usize>[src]

impl TrustedLen for RangeInclusive<isize>[src]

impl TrustedLen for RangeInclusive<u8>[src]

impl TrustedLen for RangeInclusive<i32>[src]

impl TrustedLen for RangeInclusive<i128>[src]

impl TrustedLen for RangeInclusive<i16>[src]

impl TrustedLen for RangeInclusive<u64>[src]

impl TrustedLen for RangeInclusive<u16>[src]

impl TrustedLen for RangeInclusive<i8>[src]

impl TrustedLen for RangeInclusive<i64>[src]

impl<A> DoubleEndedIterator for RangeInclusive<A> where
    A: Step
[src]

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

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

impl<A> FusedIterator for RangeInclusive<A> where
    A: Step
[src]

impl IndexMut<RangeInclusive<usize>> for String[src]

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

type Output = str

The returned type after indexing.

impl<A> Arbitrary for RangeInclusive<A> where
    A: Arbitrary + PartialOrd<A>, 
[src]

type Parameters = (<A as Arbitrary>::Parameters, <A as Arbitrary>::Parameters)

The type of parameters that [arbitrary_with] accepts for configuration of the generated [Strategy]. Parameters must implement [Default]. Read more

type Strategy = Map<<(A, A) as Arbitrary>::Strategy, fn((A, A)) -> RangeInclusive<A>>

The type of [Strategy] used to generate values of type Self. Read more

impl<A> ArbitraryF1<A> for RangeInclusive<A> where
    A: PartialOrd<A> + Debug
[src]

type Parameters = ()

The type of parameters that [lift1_with] accepts for configuration of the lifted and generated [Strategy]. Parameters must implement [Default]. Read more

impl Strategy for RangeInclusive<u16>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = u16

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<i16>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = i16

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<i64>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = i64

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<usize>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = usize

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<u64>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = u64

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<i8>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = i8

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<u32>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = u32

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<i128>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = i128

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<isize>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = isize

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<u8>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = u8

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<u128>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = u128

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<f64>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = f64

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<i32>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = i32

The type of value used by functions under test generated by this Strategy. Read more

impl Strategy for RangeInclusive<f32>[src]

type Tree = BinarySearch

The value tree generated by this Strategy.

type Value = f32

The type of value used by functions under test generated by this Strategy. Read more

impl From<RangeInclusive<usize>> for SizeRange[src]

Given low ..= high, then a size range [low, high] is the result.

Auto Trait Implementations

impl<Idx> Send for RangeInclusive<Idx> where
    Idx: Send

impl<Idx> Sync for RangeInclusive<Idx> where
    Idx: Sync

impl<Idx> Unpin for RangeInclusive<Idx> where
    Idx: Unpin

impl<Idx> UnwindSafe for RangeInclusive<Idx> where
    Idx: UnwindSafe

impl<Idx> RefUnwindSafe for RangeInclusive<Idx> where
    Idx: RefUnwindSafe

Blanket Implementations

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

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

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

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

type Owned = T

The resulting type after obtaining ownership.

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

type Error = !

The type returned in the event of a conversion error.

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.

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

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

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

impl<I> IteratorRandom for I where
    I: Iterator
[src]

impl<I> IteratorRandom for I where
    I: Iterator
[src]

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