Struct radix_trie::NibbleVec []

pub struct NibbleVec {
    // some fields omitted
}

A data-structure for storing a sequence of 4-bit values.

Values are stored in a Vec<u8>, with two values per byte.

Values at even indices are stored in the most-significant half of their byte, while values at odd indices are stored in the least-significant half.

Imagine a vector of MSB first bytes, and you'll be right.

n = [_ _ | _ _ | _ _]

Methods

impl NibbleVec

fn new() -> NibbleVec

Create an empty nibble vector.

fn from_byte_vec(vec: Vec<u8>) -> NibbleVec

Create a nibble vector from a vector of bytes.

Each byte is split into two 4-bit entries (MSB, LSB).

fn len(&self) -> usize

Get the number of elements stored in the vector.

fn get(&self, idx: usize) -> u8

Fetch a single entry from the vector.

Guaranteed to be a value in the interval [0, 15].

Panics if idx >= self.len().

fn push(&mut self, val: u8)

Add a single nibble to the vector.

Only the 4 least-significant bits of the value are used.

fn split(&mut self, idx: usize) -> NibbleVec

Split the vector into two parts.

All elements at or following the given index are returned in a new NibbleVec, with exactly idx elements remaining in this vector.

Panics if idx > self.len().

fn join(self, other: &NibbleVec) -> NibbleVec

Append another nibble vector whilst consuming this vector.

Trait Implementations

impl Clone for NibbleVec

fn clone(&self) -> NibbleVec

impl PartialEq<NibbleVec> for NibbleVec

fn eq(&self, other: &NibbleVec) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Rhs) -> bool
1.0.0

This method tests for !=.

impl Eq for NibbleVec

impl PartialEq<[u8]> for NibbleVec

Compare a NibbleVec and a slice of bytes element-by-element. Bytes are not interpreted as two NibbleVec entries.

fn eq(&self, other: &[u8]) -> bool

This method tests for self and other values to be equal, and is used by ==. Read more

fn ne(&self, other: &Rhs) -> bool
1.0.0

This method tests for !=.

impl Debug for NibbleVec

fn fmt(&self, fmt: &mut Formatter) -> Result<()Error>

Formats the value using the given formatter.