EncodedKeyRange

Struct EncodedKeyRange 

Source
pub struct EncodedKeyRange {
    pub start: Bound<EncodedKey>,
    pub end: Bound<EncodedKey>,
}

Fields§

§start: Bound<EncodedKey>§end: Bound<EncodedKey>

Implementations§

Source§

impl EncodedKeyRange

Source

pub fn new(start: Bound<EncodedKey>, end: Bound<EncodedKey>) -> Self

Source

pub fn prefix(prefix: &[u8]) -> Self

Generates a key range for a key prefix, used e.g. for prefix scans.

The exclusive end bound is generated by adding 1 to the value of the last byte. If the last byte(s) is 0xff (so adding 1 would saturation), we instead find the latest non-0xff byte, increment that, and truncate the rest. If all bytes are 0xff, we scan to the end of the range, since there can’t be other prefixes after it.

Source

pub fn with_prefix(&self, prefix: EncodedKey) -> Self

Source

pub fn start_end(start: Option<EncodedKey>, end: Option<EncodedKey>) -> Self

Constructs a key range from an optional inclusive start key to an optional inclusive end key.

  • start: If provided, marks the inclusive lower bound of the range. If None, the range is unbounded below.
  • end: If provided, marks the inclusive upper bound of the range. If None, the range is unbounded above.

This function does not modify the input keys and assumes they are already exact keys (not prefixes). If you need to scan all keys with a given prefix, use EncodedKeyRange::prefix instead.

Useful for scanning between two explicit keys in a sorted key-value store.

Source

pub fn all() -> Self

Constructs a key range that fragments the entire keyspace.

This range has no lower or upper bounds, making it suitable for full scans over all keys in a sorted key-value store.

Equivalent to: .. (in Rust range syntax)

Source

pub fn parse(str: &str) -> Self

Parses a human-readable range string into a KeyRange.

The expected format is <start>..[=]<end>, where:

  • <start> is the inclusive lower bound (optional),
  • .. separates the bounds,
  • = after .. makes the upper bound inclusive,
  • <end> is the upper bound (optional).

Examples:

  • "a..z" => start = Included(“a”), end = Excluded(“z”)
  • "a..=z" => start = Included(“a”), end = Included(“z”)
  • "..z" => start = Unbounded, end = Excluded(“z”)
  • "a.." => start = Included(“a”), end = Unbounded

If parsing fails, it defaults to a degenerate range from 0xff to 0xff (empty).

Trait Implementations§

Source§

impl Clone for EncodedKeyRange

Source§

fn clone(&self) -> EncodedKeyRange

Returns a duplicate of the value. Read more
1.0.0§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EncodedKeyRange

Source§

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

Formats the value using the given formatter. Read more
Source§

impl From<EncodedIndexKeyRange> for EncodedKeyRange

Source§

fn from(range: EncodedIndexKeyRange) -> Self

Converts to this type from the input type.
Source§

impl RangeBounds<EncodedKey> for EncodedKeyRange

Source§

fn start_bound(&self) -> Bound<&EncodedKey>

Start index bound. Read more
Source§

fn end_bound(&self) -> Bound<&EncodedKey>

End index bound. Read more
1.35.0§

fn contains<U>(&self, item: &U) -> bool
where T: PartialOrd<U>, U: PartialOrd<T> + ?Sized,

Returns true if item is contained in the range. Read more
§

fn is_empty(&self) -> bool
where T: PartialOrd,

🔬This is a nightly-only experimental API. (range_bounds_is_empty)
Returns true if the range contains no items. One-sided ranges (RangeFrom, etc) always return false. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> CloneToUninit for T
where T: Clone,

§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more