pub struct LevelNode {
pub id: [u8; 32],
pub hash: [u8; 32],
pub parent_id: Option<[u8; 32]>,
pub leaf_data: Option<TreeLeafData>,
}Expand description
A node in the level-wise traversal.
Contains enough information to compare with local state and decide whether to recurse or fetch leaf data.
Fields§
§id: [u8; 32]Node ID.
hash: [u8; 32]Merkle hash of this node.
parent_id: Option<[u8; 32]>Parent node ID (None for root children).
leaf_data: Option<TreeLeafData>Leaf data (present only for leaf nodes). Includes full data and metadata for CRDT merge.
Implementations§
Source§impl LevelNode
impl LevelNode
Sourcepub fn internal(
id: [u8; 32],
hash: [u8; 32],
parent_id: Option<[u8; 32]>,
) -> Self
pub fn internal( id: [u8; 32], hash: [u8; 32], parent_id: Option<[u8; 32]>, ) -> Self
Create an internal node.
Sourcepub fn leaf(
id: [u8; 32],
hash: [u8; 32],
parent_id: Option<[u8; 32]>,
data: TreeLeafData,
) -> Self
pub fn leaf( id: [u8; 32], hash: [u8; 32], parent_id: Option<[u8; 32]>, data: TreeLeafData, ) -> Self
Create a leaf node.
Sourcepub fn is_internal(&self) -> bool
pub fn is_internal(&self) -> bool
Check if this is an internal node.
Trait Implementations§
Source§impl BorshDeserialize for LevelNode
impl BorshDeserialize for LevelNode
fn deserialize_reader<__R: Read>(reader: &mut __R) -> Result<Self, Error>
Source§fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
fn deserialize(buf: &mut &[u8]) -> Result<Self, Error>
Deserializes this instance from a given slice of bytes.
Updates the buffer to point at the remaining bytes.
Source§fn try_from_slice(v: &[u8]) -> Result<Self, Error>
fn try_from_slice(v: &[u8]) -> Result<Self, Error>
Deserialize this instance from a slice of bytes.
fn try_from_reader<R>(reader: &mut R) -> Result<Self, Error>where
R: Read,
Source§impl BorshSerialize for LevelNode
impl BorshSerialize for LevelNode
impl StructuralPartialEq for LevelNode
Auto Trait Implementations§
impl Freeze for LevelNode
impl RefUnwindSafe for LevelNode
impl Send for LevelNode
impl Sync for LevelNode
impl Unpin for LevelNode
impl UnsafeUnpin for LevelNode
impl UnwindSafe for LevelNode
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 more