Enum std::ops::Bound
pub enum Bound<T> { Included(T), Excluded(T), Unbounded, }
An endpoint of a range of keys.
Examples
Bound
s 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));
Using a tuple of Bound
s 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());
Variants
Included(T)
An inclusive bound.
Tuple Fields of Included
0: T
Excluded(T)
An exclusive bound.
Tuple Fields of Excluded
0: T
Unbounded
An infinite endpoint. Indicates that there is no bound in this direction.
Implementations
impl<T> Bound<T>
pub fn as_ref(&self) -> Bound<&T>
Converts from &Bound<T>
to Bound<&T>
.
pub fn as_mut(&mut self) -> Bound<&mut T>
Converts from &mut Bound<T>
to Bound<&mut T>
.
Maps a Bound<T>
to a Bound<U>
by applying a function to the contained value (including both Included
and Excluded
), returning a Bound
of the same kind.
Examples
#![feature(bound_map)] use std::ops::Bound::*; let bound_string = Included("Hello, World!"); assert_eq!(bound_string.map(|s| s.len()), Included(13));
#![feature(bound_map)] use std::ops::Bound; use Bound::*; let unbounded_string: Bound<String> = Unbounded; assert_eq!(unbounded_string.map(|s| s.len()), Unbounded);
pub fn cloned(self) -> Bound<T>
Map a Bound<&T>
to a Bound<T>
by cloning the contents of the bound.
Examples
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));
Trait Implementations
pub fn clone(&self) -> Bound<T>
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, f: &mut Formatter<'_>) -> Result<(), Error>
Formats the value using the given formatter. Read more
pub fn eq(&self, other: &Bound<T>) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
pub fn ne(&self, other: &Bound<T>) -> bool
This method tests for !=
.
impl<T> StructuralEq for Bound<T>
impl<T> StructuralPartialEq for Bound<T>
Auto Trait Implementations
impl<T> RefUnwindSafe for Bound<T> where
T: RefUnwindSafe,
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,
impl<T> UnwindSafe for Bound<T> where
T: 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/enum.Bound.html