Struct radix_trie::NibbleVec
[−]
[src]
pub struct NibbleVec { /* 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
[src]
fn new() -> NibbleVec
[src]
Create an empty nibble vector.
fn from_byte_vec(vec: Vec<u8>) -> NibbleVec
[src]
Create a nibble vector from a vector of bytes.
Each byte is split into two 4-bit entries (MSB, LSB).
fn len(&self) -> usize
[src]
Get the number of elements stored in the vector.
fn get(&self, idx: usize) -> u8
[src]
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)
[src]
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
[src]
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
[src]
Append another nibble vector whilst consuming this vector.
Trait Implementations
impl Clone for NibbleVec
[src]
impl Debug for NibbleVec
[src]
fn fmt(&self, fmt: &mut Formatter) -> Result<(), Error>
[src]
Formats the value using the given formatter.
impl Eq for NibbleVec
[src]
impl PartialEq<NibbleVec> for NibbleVec
[src]
fn eq(&self, other: &NibbleVec) -> bool
[src]
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[src]
This method tests for !=
.
impl PartialEq<[u8]> for NibbleVec
[src]
Compare a NibbleVec and a slice of bytes element-by-element. Bytes are not interpreted as two NibbleVec entries.