Type Definition blart::InnerNode4

source ·
pub type InnerNode4<K, V> = InnerNodeCompressed<K, V, 4>;
Expand description

Node that references between 2 and 4 children

Trait Implementations§

source§

impl<K, V> InnerNode for InnerNode4<K, V>

§

type GrownNode = InnerNodeCompressed<<InnerNodeCompressed<K, V, 4> as Node>::Key, <InnerNodeCompressed<K, V, 4> as Node>::Value, 16>

The type of the next larger node type.
§

type Iter = InnerNodeCompressedIter<<InnerNodeCompressed<K, V, 4> as Node>::Key, <InnerNodeCompressed<K, V, 4> as Node>::Value>

The type of the iterator over all children of the inner node
§

type ShrunkNode = InnerNodeCompressed<<InnerNodeCompressed<K, V, 4> as Node>::Key, <InnerNodeCompressed<K, V, 4> as Node>::Value, 4>

The type of the next smaller node type.
source§

fn lookup_child(&self, key_fragment: u8) -> Option<OpaqueNodePtr<K, V>>

Search through this node for a child node that corresponds to the given key fragment.
source§

fn write_child(&mut self, key_fragment: u8, child_pointer: OpaqueNodePtr<K, V>)

Write a child pointer with key fragment to this inner node. Read more
source§

fn remove_child( &mut self, key_fragment: u8 ) -> Option<OpaqueNodePtr<<Self as Node>::Key, <Self as Node>::Value>>

Attempt to remove a child pointer at the key fragment from this inner node. Read more
source§

fn grow(&self) -> Self::GrownNode

Grow this node into the next larger class, copying over children and prefix information.
source§

fn shrink(&self) -> Self::ShrunkNode

Shrink this node into the next smaller class, copying over children and prefix information. Read more
source§

fn header(&self) -> &Header

Access the header information for this node.
source§

fn header_mut(&mut self) -> &mut Header

Access the header information for this node.
source§

unsafe fn iter(&self) -> Self::Iter

Create an iterator over all (key bytes, child pointers) in this inner node. Read more
source§

fn split_at(&mut self, key_fragment: u8) -> Self

Split the inner node at the given key-byte, returning a new InnerNode of the same type that contains all children including and after the given key fragment. The original inner node has those children removed. Read more
source§

fn num_children_after_split(&self, key_fragment: u8) -> (usize, usize)

This function will count the number of children before and after the split point. Read more
source§

fn is_full(&self) -> bool

Returns true if this node has no more space to store children.
source§

impl<K, V> Node for InnerNode4<K, V>

§

type Key = K

The key type carried by the leafe nodes
§

type Value = V

The value type carried by the leaf nodes
source§

const TYPE: NodeType = NodeType::Node4

The runtime type of the node.
source§

impl<K, T> Visitable<K, T> for InnerNode4<K, T>

source§

fn super_visit_with<V: Visitor<K, T>>(&self, visitor: &mut V) -> V::Output

This function provides the default traversal behavior for the implementing type. Read more
source§

fn visit_with<V: Visitor<K, T>>(&self, visitor: &mut V) -> V::Output

This function will traverse the implementing type and execute any specific logic from the given Visitor. Read more
source§

impl<K, V> Sealed for InnerNode4<K, V>