pub enum InsertSearchResultType<K, V> {
    MismatchPrefix {
        matched_prefix_size: usize,
        mismatched_inner_node_ptr: OpaqueNodePtr<K, V>,
    },
    SplitLeaf {
        leaf_node_ptr: NodePtr<LeafNode<K, V>>,
    },
    IntoExisting {
        inner_node_ptr: OpaqueNodePtr<K, V>,
    },
}
Expand description

The type of insert

Variants§

§

MismatchPrefix

Fields

§matched_prefix_size: usize

The number of key bytes that did match for the mismatched prefix

§mismatched_inner_node_ptr: OpaqueNodePtr<K, V>

A pointer to the inner node which had a mismatched prefix

An insert where an inner node had a differing prefix from the key.

This insert type will create a new inner node with the portion of the prefix that did match, and update the existing inner node

§

SplitLeaf

Fields

§leaf_node_ptr: NodePtr<LeafNode<K, V>>

A pointer to the leaf node that will be split

An insert where the node to be added matched all the way up to a leaf node.

This insert type will create a new inner node, and assign the existing leaf and the new leaf as children to that node.

§

IntoExisting

Fields

§inner_node_ptr: OpaqueNodePtr<K, V>

A pointer to the existing inner node which will be updated to contain the new child leaf node

An insert where the search terminated at an existing inner node that did not have a child with the key byte.

If the inner node is full, it will be grown to the next largest size.

Trait Implementations§

source§

impl<K, V> Debug for InsertSearchResultType<K, V>

source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<K, V> RefUnwindSafe for InsertSearchResultType<K, V>where K: RefUnwindSafe, V: RefUnwindSafe,

§

impl<K, V> !Send for InsertSearchResultType<K, V>

§

impl<K, V> !Sync for InsertSearchResultType<K, V>

§

impl<K, V> Unpin for InsertSearchResultType<K, V>where K: Unpin, V: Unpin,

§

impl<K, V> UnwindSafe for InsertSearchResultType<K, V>where K: UnwindSafe + RefUnwindSafe, V: UnwindSafe + RefUnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

source§

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, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

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

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

Performs the conversion.
source§

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

§

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

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

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

Performs the conversion.