Struct BranchNodeMasks
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§
§impl BranchNodeMasks
impl BranchNodeMasks
pub fn from_optional(
hash_mask: Option<TrieMask>,
tree_mask: Option<TrieMask>,
) -> Option<BranchNodeMasks>
pub fn from_optional( hash_mask: Option<TrieMask>, tree_mask: Option<TrieMask>, ) -> Option<BranchNodeMasks>
Creates masks from optional hash and tree masks.
Returns None if both masks are None, otherwise defaults missing masks to empty.
pub 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§
§impl Clone for BranchNodeMasks
impl Clone for BranchNodeMasks
§fn clone(&self) -> BranchNodeMasks
fn clone(&self) -> BranchNodeMasks
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BranchNodeMasks
§impl Debug for BranchNodeMasks
impl Debug for BranchNodeMasks
§impl Default for BranchNodeMasks
impl Default for BranchNodeMasks
§fn default() -> BranchNodeMasks
fn default() -> BranchNodeMasks
impl Eq for BranchNodeMasks
§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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> 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> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§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>,
Source§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