pub struct LevelWiseRequest {
pub level: usize,
pub parent_ids: Option<Vec<[u8; 32]>>,
}Expand description
Request for level-wise breadth-first synchronization.
Processes the tree level-by-level, comparing hashes at each level. Efficient for wide, shallow trees with scattered changes.
Use when:
- max_depth <= 2
- Wide trees with many children at each level
- Changes scattered across siblings
Fields§
§level: usizeLevel to request (0 = root’s children, 1 = grandchildren, etc.).
parent_ids: Option<Vec<[u8; 32]>>Parent IDs to fetch children for (None = fetch all at this level). Used to narrow down which subtrees to explore.
Limited to MAX_PARENTS_PER_REQUEST entries. Use is_valid() to check
bounds after deserialization from untrusted sources.
Implementations§
Source§impl LevelWiseRequest
impl LevelWiseRequest
Sourcepub fn for_parents(level: usize, parent_ids: Vec<[u8; 32]>) -> Self
pub fn for_parents(level: usize, parent_ids: Vec<[u8; 32]>) -> Self
Request children of specific parents at a given level.
Sourcepub fn is_full_level(&self) -> bool
pub fn is_full_level(&self) -> bool
Check if this requests all nodes at the level.
Sourcepub fn parent_count(&self) -> Option<usize>
pub fn parent_count(&self) -> Option<usize>
Get number of parents being queried (None if full level).
Trait Implementations§
Source§impl BorshDeserialize for LevelWiseRequest
impl BorshDeserialize for LevelWiseRequest
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 LevelWiseRequest
impl BorshSerialize for LevelWiseRequest
Source§impl Clone for LevelWiseRequest
impl Clone for LevelWiseRequest
Source§fn clone(&self) -> LevelWiseRequest
fn clone(&self) -> LevelWiseRequest
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for LevelWiseRequest
impl Debug for LevelWiseRequest
Source§impl PartialEq for LevelWiseRequest
impl PartialEq for LevelWiseRequest
impl StructuralPartialEq for LevelWiseRequest
Auto Trait Implementations§
impl Freeze for LevelWiseRequest
impl RefUnwindSafe for LevelWiseRequest
impl Send for LevelWiseRequest
impl Sync for LevelWiseRequest
impl Unpin for LevelWiseRequest
impl UnsafeUnpin for LevelWiseRequest
impl UnwindSafe for LevelWiseRequest
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