pub struct RangeBounds { /* private fields */ }Expand description
The half-open [lower, upper) partition a range owns.
Half-open bounds tile the keyspace without gaps or double-cover: adjacent
ranges share a boundary key that belongs to exactly one of them. lower must
be strictly below upper, so an empty or inverted range cannot be
constructed.
Implementations§
Source§impl RangeBounds
impl RangeBounds
Sourcepub fn new(
lower: RangeBound,
upper: RangeBound,
) -> Result<RangeBounds, RangeBoundsError>
pub fn new( lower: RangeBound, upper: RangeBound, ) -> Result<RangeBounds, RangeBoundsError>
Bounds from an explicit [lower, upper) pair. Errors if the range would
be empty or inverted (lower >= upper).
Sourcepub fn full() -> RangeBounds
pub fn full() -> RangeBounds
The whole keyspace, [Min, Max) — a single range covering a collection.
pub fn lower(&self) -> &RangeBound
pub fn upper(&self) -> &RangeBound
Sourcepub fn contains(&self, key: &[u8]) -> bool
pub fn contains(&self, key: &[u8]) -> bool
Does key fall inside this half-open range? Lower bound inclusive, upper
bound exclusive — the routing predicate.
Sourcepub fn overlaps(&self, other: &RangeBounds) -> bool
pub fn overlaps(&self, other: &RangeBounds) -> bool
Do these two ranges share any key? Used to keep a collection’s ranges non-overlapping so routing resolves to exactly one owner.
Trait Implementations§
Source§impl Clone for RangeBounds
impl Clone for RangeBounds
Source§fn clone(&self) -> RangeBounds
fn clone(&self) -> RangeBounds
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RangeBounds
impl Debug for RangeBounds
impl Eq for RangeBounds
Source§impl PartialEq for RangeBounds
impl PartialEq for RangeBounds
Source§fn eq(&self, other: &RangeBounds) -> bool
fn eq(&self, other: &RangeBounds) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for RangeBounds
Auto Trait Implementations§
impl Freeze for RangeBounds
impl RefUnwindSafe for RangeBounds
impl Send for RangeBounds
impl Sync for RangeBounds
impl Unpin for RangeBounds
impl UnsafeUnpin for RangeBounds
impl UnwindSafe for RangeBounds
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request