pub enum Frame {
Auth {
account_id: [u8; 32],
binding: Vec<u8>,
},
Hello {
account_id: [u8; 32],
have: Vec<[u8; 32]>,
},
Entries {
entries: Vec<Vec<u8>>,
more: bool,
},
Done,
}Expand description
One protocol frame. The discriminant is the second array element (after the domain tag).
Variants§
Auth
Authorizes the sender to the peer BEFORE any inventory is revealed (#881): names the account and carries the sender’s signed transport-node ↔ account-device binding. The peer verifies it against its roster and the connection’s authenticated remote node id under its own admission policy, and reveals nothing (not even account confirmation) until it passes.
Hello
Opens the data phase: the account being synced and every account-log entry hash the sender holds. The peer replies with the entries in ITS store that are not in this set.
Entries
A page of signed_bytes the peer lacked. more is true when further pages follow.
Done
The sender has streamed every entry the peer lacked. A session ends when both directions are
Done.
Implementations§
Trait Implementations§
impl Eq for Frame
impl StructuralPartialEq for Frame
Auto Trait Implementations§
impl Freeze for Frame
impl RefUnwindSafe for Frame
impl Send for Frame
impl Sync for Frame
impl Unpin for Frame
impl UnsafeUnpin for Frame
impl UnwindSafe for Frame
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more