pub enum Bound<T> {
Included(T),
Excluded(T),
Unbounded,
}
Expand description
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.
Excluded(T)
An exclusive bound.
Unbounded
An infinite endpoint. Indicates that there is no bound in this direction.
Implementations§
Source§impl<T> Bound<T>
impl<T> Bound<T>
Sourcepub fn as_mut(&mut self) -> Bound<&mut T>
🔬This is a nightly-only experimental API. (bound_as_ref
)
pub fn as_mut(&mut self) -> Bound<&mut T>
bound_as_ref
)Converts from &mut Bound<T>
to Bound<&mut T>
.
1.77.0 · Sourcepub fn map<U, F>(self, f: F) -> Bound<U>where
F: FnOnce(T) -> U,
pub fn map<U, F>(self, f: F) -> Bound<U>where
F: FnOnce(T) -> U,
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
use std::ops::Bound::*;
let bound_string = Included("Hello, World!");
assert_eq!(bound_string.map(|s| s.len()), Included(13));
use std::ops::Bound;
use Bound::*;
let unbounded_string: Bound<String> = Unbounded;
assert_eq!(unbounded_string.map(|s| s.len()), Unbounded);
Trait Implementations§
Source§impl<'de, T> Deserialize<'de> for Bound<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for Bound<T>where
T: Deserialize<'de>,
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Bound<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Bound<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<'de, T, U> DeserializeAs<'de, Bound<T>> for Bound<U>where
U: DeserializeAs<'de, T>,
impl<'de, T, U> DeserializeAs<'de, Bound<T>> for Bound<U>where
U: DeserializeAs<'de, T>,
Source§fn deserialize_as<D>(
deserializer: D,
) -> Result<Bound<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize_as<D>(
deserializer: D,
) -> Result<Bound<T>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer.
Source§impl<T> Serialize for Bound<T>where
T: Serialize,
impl<T> Serialize for Bound<T>where
T: Serialize,
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl<T, U> SerializeAs<Bound<T>> for Bound<U>where
U: SerializeAs<T>,
impl<T, U> SerializeAs<Bound<T>> for Bound<U>where
U: SerializeAs<T>,
Source§fn serialize_as<S>(
source: &Bound<T>,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize_as<S>(
source: &Bound<T>,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer.
impl<T> Copy for Bound<T>where
T: Copy,
impl<T> Eq for Bound<T>where
T: Eq,
impl<T> StructuralPartialEq for Bound<T>
Auto Trait Implementations§
impl<T> Freeze for Bound<T>where
T: Freeze,
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§
Source§impl<S> AssignWithType for S
impl<S> AssignWithType for S
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<C, E> EntryToVal<C> for Ewhere
C: Collection<Entry = E>,
impl<C, E> EntryToVal<C> for Ewhere
C: Collection<Entry = E>,
Source§type Val = <C as Collection>::Val
type Val = <C as Collection>::Val
The type of values stored in the collection. This might be distinct from
Entry
in complex collections.
For example, in a HashMap
, while Entry
might be a ( key, value ) tuple, Val
might only be the value part.Source§fn entry_to_val(self) -> <E as EntryToVal<C>>::Val
fn entry_to_val(self) -> <E as EntryToVal<C>>::Val
Converts an entry into a value representation specific to the type of collection. This conversion is crucial
for handling operations on entries, especially when they need to be treated or accessed as individual values,
such as retrieving the value part from a key-value pair in a hash map.
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<'a, T> ToStringWith<WithDebug> for T
impl<'a, T> ToStringWith<WithDebug> for T
Source§fn to_string_with<'s>(&'s self) -> Cow<'s, str>
fn to_string_with<'s>(&'s self) -> Cow<'s, str>
Converts the type to a string using Debug formatting.
Source§impl<'a, T> ToStringWith<WithDebugMultiline> for T
impl<'a, T> ToStringWith<WithDebugMultiline> for T
Source§fn to_string_with<'s>(&'s self) -> Cow<'s, str>
fn to_string_with<'s>(&'s self) -> Cow<'s, str>
Converts the type to a string using Debug formatting.
Source§impl<Initial, Error, Final> TransitiveTryFrom<Error, Initial> for Final
impl<Initial, Error, Final> TransitiveTryFrom<Error, Initial> for Final
Source§impl<Error, Final, Initial> TransitiveTryInto<Error, Final> for Initial
impl<Error, Final, Initial> TransitiveTryInto<Error, Final> for Initial
Source§impl<C, Val> ValToEntry<C> for Valwhere
C: CollectionValToEntry<Val>,
impl<C, Val> ValToEntry<C> for Valwhere
C: CollectionValToEntry<Val>,
Source§fn val_to_entry(self) -> <C as CollectionValToEntry<Val>>::Entry
fn val_to_entry(self) -> <C as CollectionValToEntry<Val>>::Entry
Invokes the val_to_entry
function of the CollectionValToEntry
trait to convert the value to an entry.
Source§type Entry = <C as CollectionValToEntry<Val>>::Entry
type Entry = <C as CollectionValToEntry<Val>>::Entry
Represents the type of entry that corresponds to the value within the collection.