pub struct SyncHandshake {
pub version: u32,
pub root_hash: [u8; 32],
pub entity_count: u64,
pub max_depth: u32,
pub dag_heads: Vec<[u8; 32]>,
pub has_state: bool,
pub supported_protocols: Vec<SyncProtocolKind>,
}Expand description
Sync handshake message (Initiator → Responder).
Contains the initiator’s state summary for protocol negotiation.
See CIP §2.1 - Handshake Message.
Fields§
§version: u32Protocol version for compatibility checking.
root_hash: [u8; 32]Current Merkle root hash.
entity_count: u64Number of entities in the tree.
max_depth: u32Maximum depth of the Merkle tree.
dag_heads: Vec<[u8; 32]>Current DAG heads (latest delta IDs).
has_state: boolWhether this node has any state.
supported_protocols: Vec<SyncProtocolKind>Supported protocols (ordered by preference).
Implementations§
Source§impl SyncHandshake
impl SyncHandshake
Sourcepub fn new(
root_hash: [u8; 32],
entity_count: u64,
max_depth: u32,
dag_heads: Vec<[u8; 32]>,
) -> Self
pub fn new( root_hash: [u8; 32], entity_count: u64, max_depth: u32, dag_heads: Vec<[u8; 32]>, ) -> Self
Create a new handshake message from local state.
Sourcepub fn is_version_compatible(&self, other: &Self) -> bool
pub fn is_version_compatible(&self, other: &Self) -> bool
Check if the remote handshake has a compatible protocol version.
Sourcepub fn is_in_sync(&self, other: &Self) -> bool
pub fn is_in_sync(&self, other: &Self) -> bool
Check if root hashes match (already in sync).
Trait Implementations§
Source§impl BorshDeserialize for SyncHandshake
impl BorshDeserialize for SyncHandshake
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 SyncHandshake
impl BorshSerialize for SyncHandshake
Source§impl Clone for SyncHandshake
impl Clone for SyncHandshake
Source§fn clone(&self) -> SyncHandshake
fn clone(&self) -> SyncHandshake
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 SyncHandshake
impl Debug for SyncHandshake
Source§impl Default for SyncHandshake
impl Default for SyncHandshake
Source§impl PartialEq for SyncHandshake
impl PartialEq for SyncHandshake
impl StructuralPartialEq for SyncHandshake
Auto Trait Implementations§
impl Freeze for SyncHandshake
impl RefUnwindSafe for SyncHandshake
impl Send for SyncHandshake
impl Sync for SyncHandshake
impl Unpin for SyncHandshake
impl UnsafeUnpin for SyncHandshake
impl UnwindSafe for SyncHandshake
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