pub struct BranchNodeMasks {
pub hash_mask: TrieMask,
pub tree_mask: TrieMask,
}Expand description
Branch node masks containing hash_mask and tree_mask.
Consolidates hash_mask and tree_mask into a single struct, reducing HashMap overhead
when storing masks by path. Instead of two separate HashMap<Nibbles, TrieMask>,
we use a single HashMap<Nibbles, BranchNodeMasks>.
Fields§
§hash_mask: TrieMaskHash mask indicating which children are stored as hashes.
tree_mask: TrieMaskTree mask indicating which children are complete subtrees.
Implementations§
Source§impl BranchNodeMasks
impl BranchNodeMasks
Sourcepub fn from_optional(
hash_mask: Option<TrieMask>,
tree_mask: Option<TrieMask>,
) -> Option<Self>
pub fn from_optional( hash_mask: Option<TrieMask>, tree_mask: Option<TrieMask>, ) -> Option<Self>
Creates masks from optional hash and tree masks.
Returns None if both masks are None, otherwise defaults missing masks to empty.
Sourcepub const fn set_child_bits(
&mut self,
nibble: u8,
hash_mask_bit: bool,
tree_mask_bit: bool,
)
pub const fn set_child_bits( &mut self, nibble: u8, hash_mask_bit: bool, tree_mask_bit: bool, )
Updates this set of masks for nibble based on that child’s mask bits.
Trait Implementations§
Source§impl Clone for BranchNodeMasks
impl Clone for BranchNodeMasks
impl Copy for BranchNodeMasks
Source§impl Debug for BranchNodeMasks
impl Debug for BranchNodeMasks
Source§impl Default for BranchNodeMasks
impl Default for BranchNodeMasks
impl Eq for BranchNodeMasks
Source§impl PartialEq for BranchNodeMasks
impl PartialEq for BranchNodeMasks
impl StructuralPartialEq for BranchNodeMasks
Auto Trait Implementations§
impl Freeze for BranchNodeMasks
impl RefUnwindSafe for BranchNodeMasks
impl Send for BranchNodeMasks
impl Sync for BranchNodeMasks
impl Unpin for BranchNodeMasks
impl UnsafeUnpin for BranchNodeMasks
impl UnwindSafe for BranchNodeMasks
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> MaybeDebug for Twhere
T: Debug,
§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 4 bytes