Enum core::ops::Bound1.17.0[][src]

pub enum Bound<T> {
    Included(T),
    Excluded(T),
    Unbounded,
}
Expand description

An endpoint of a range of keys.

Examples

Bounds are range endpoints:

use std::ops::Bound::*;
use std::ops::RangeBounds;

assert_eq!((..100).start_bound(), Unbounded);
assert_eq!((1..12).start_bound(), Included(&1));
assert_eq!((1..12).end_bound(), Excluded(&12));
Run

Using a tuple of Bounds as an argument to BTreeMap::range. Note that in most cases, it’s better to use range syntax (1..5) instead.

use std::collections::BTreeMap;
use std::ops::Bound::{Excluded, Included, Unbounded};

let mut map = BTreeMap::new();
map.insert(3, "a");
map.insert(5, "b");
map.insert(8, "c");

for (key, value) in map.range((Excluded(3), Included(8))) {
    println!("{}: {}", key, value);
}

assert_eq!(Some((&3, &"a")), map.range((Unbounded, Included(5))).next());
Run

Variants

Included(T)
Expand description

An inclusive bound.

Excluded(T)
Expand description

An exclusive bound.

Unbounded
Expand description

An infinite endpoint. Indicates that there is no bound in this direction.

Implementations

impl<T> Bound<T>[src]

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

🔬 This is a nightly-only experimental API. (bound_as_ref #80996)

Converts from &Bound<T> to Bound<&T>.

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

🔬 This is a nightly-only experimental API. (bound_as_ref #80996)

Converts from &mut Bound<T> to Bound<&T>.

impl<T: Clone> Bound<&T>[src]

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

🔬 This is a nightly-only experimental API. (bound_cloned #61356)

Map a Bound<&T> to a Bound<T> by cloning the contents of the bound.

Examples

#![feature(bound_cloned)]
use std::ops::Bound::*;
use std::ops::RangeBounds;

assert_eq!((1..12).start_bound(), Included(&1));
assert_eq!((1..12).start_bound().cloned(), Included(1));
Run

Trait Implementations

impl<T: Clone> Clone for Bound<T>[src]

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

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more

impl<T: Debug> Debug for Bound<T>[src]

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

Formats the value using the given formatter. Read more

impl<T: Hash> Hash for Bound<T>[src]

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

Feeds this value into the given Hasher. Read more

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

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

impl<T: PartialEq> PartialEq<Bound<T>> for Bound<T>[src]

fn eq(&self, other: &Bound<T>) -> bool[src]

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

fn ne(&self, other: &Bound<T>) -> bool[src]

This method tests for !=.

impl<T: Copy> Copy for Bound<T>[src]

impl<T: Eq> Eq for Bound<T>[src]

impl<T> StructuralEq for Bound<T>[src]

impl<T> StructuralPartialEq for Bound<T>[src]

Auto Trait Implementations

impl<T> Send for Bound<T> where
    T: Send

impl<T> Sync for Bound<T> where
    T: Sync

impl<T> Unpin for Bound<T> where
    T: Unpin

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[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, 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(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.