Struct akd::node_label::NodeLabel
source · Expand description
The NodeLabel struct represents the label for a TreeNode. Since the label itself may have any number of zeros pre-pended, just using a native type, unless it is a bit-vector, wouldn’t work. Hence, we need a custom representation.
Fields
label_val: [u8; 32]
val stores a binary string as an array of 32 bytes
label_len: u32
len keeps track of how long the binary string actually is, since there may be extra 0s in the val
Implementations
sourceimpl NodeLabel
impl NodeLabel
sourcepub fn new(val: [u8; 32], len: u32) -> Self
pub fn new(val: [u8; 32], len: u32) -> Self
Creates a new NodeLabel with the given value and len.
sourcepub fn get_longest_common_prefix(&self, other: Self) -> Self
pub fn get_longest_common_prefix(&self, other: Self) -> Self
Takes as input a pointer to the caller and another NodeLabel, returns a NodeLabel that is the longest common prefix of the two.
sourcepub fn get_longest_common_prefix_and_dirs(
&self,
other: Self
) -> (Self, Direction, Direction)
pub fn get_longest_common_prefix_and_dirs(
&self,
other: Self
) -> (Self, Direction, Direction)
Takes as input a pointer to self, another NodeLabel and returns the tuple representing:
- the longest common prefix,
- the direction, with respect to the longest common prefix, of other,
- the direction, with respect to the longest common prefix, of self. If either the node itself, or other is the longest common prefix, the direction of the longest common prefix node is None.
Trait Implementations
sourceimpl Ord for NodeLabel
impl Ord for NodeLabel
1.21.0 · sourcefn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: Sized + PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialOrd<NodeLabel> for NodeLabel
impl PartialOrd<NodeLabel> for NodeLabel
sourcefn partial_cmp(&self, other: &Self) -> Option<Ordering>
fn partial_cmp(&self, other: &Self) -> Option<Ordering>
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Copy for NodeLabel
impl Eq for NodeLabel
impl StructuralEq for NodeLabel
impl StructuralPartialEq for NodeLabel
Auto Trait Implementations
impl RefUnwindSafe for NodeLabel
impl Send for NodeLabel
impl Sync for NodeLabel
impl Unpin for NodeLabel
impl UnwindSafe for NodeLabel
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.