pub struct CollisionReport<D> {
pub collisions: Vec<RecordCollision<D>>,
}Expand description
The wire message that carries collision alarms to a peer.
Frame: tag 0x05, little-endian u32 body length, its complement, the
body, and a CRC-32 of both length fields and the body, as for an EventLog
frame. The body is the length-prefixed schema
safemesh/collision-report/v1/<payload schema>, a u32 entry count, then
for each entry the author and sequence as u64 and the reporter’s payload
and the offered payload, each length-prefixed in its own wire encoding.
Fields§
§collisions: Vec<RecordCollision<D>>Implementations§
Source§impl<D: WireDecode + WireSchema> CollisionReport<D>
impl<D: WireDecode + WireSchema> CollisionReport<D>
Sourcepub fn from_wire_bytes_with_limits(
bytes: &[u8],
limits: DecodeLimits,
) -> Result<Self, DecodeError>
pub fn from_wire_bytes_with_limits( bytes: &[u8], limits: DecodeLimits, ) -> Result<Self, DecodeError>
Decode a report with an entry budget and nested payload budgets.
Checks the tag, length pair and CRC before reading the body, then the
schema, and stops before entry max_records + 1. Any failure returns
no partial report.
Trait Implementations§
Source§impl<D: Clone> Clone for CollisionReport<D>
impl<D: Clone> Clone for CollisionReport<D>
Source§fn clone(&self) -> CollisionReport<D>
fn clone(&self) -> CollisionReport<D>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<D: Debug> Debug for CollisionReport<D>
impl<D: Debug> Debug for CollisionReport<D>
Source§impl<D: PartialEq> PartialEq for CollisionReport<D>
impl<D: PartialEq> PartialEq for CollisionReport<D>
Source§fn eq(&self, other: &CollisionReport<D>) -> bool
fn eq(&self, other: &CollisionReport<D>) -> bool
self and other values to be equal, and is used by ==.1.0.0 · Source§fn ne(&self, other: &Rhs) -> bool
fn ne(&self, other: &Rhs) -> bool
!=. The default implementation is almost always sufficient,
and should not be overridden without very good reason.Source§impl<D: WireDecode + WireSchema> WireDecode for CollisionReport<D>
impl<D: WireDecode + WireSchema> WireDecode for CollisionReport<D>
fn decode_wire(cursor: &mut WireCursor<'_>) -> Result<Self, WireError>
Source§fn decode_wire_with_collection_limits(
cursor: &mut WireCursor<'_>,
limits: CollectionLimits,
) -> Result<Self, WireError>
fn decode_wire_with_collection_limits( cursor: &mut WireCursor<'_>, limits: CollectionLimits, ) -> Result<Self, WireError>
Source§fn decode_wire_with_limits(
cursor: &mut WireCursor<'_>,
collections: CollectionLimits,
max_records: Option<usize>,
) -> Result<Self, WireError>
fn decode_wire_with_limits( cursor: &mut WireCursor<'_>, collections: CollectionLimits, max_records: Option<usize>, ) -> Result<Self, WireError>
Source§fn from_wire_bytes_with_collection_limits(
bytes: &[u8],
limits: CollectionLimits,
) -> Result<Self, WireError>
fn from_wire_bytes_with_collection_limits( bytes: &[u8], limits: CollectionLimits, ) -> Result<Self, WireError>
fn from_wire_bytes(bytes: &[u8]) -> Result<Self, WireError>
Source§impl<D: WireEncode + WireSchema> WireEncode for CollisionReport<D>
impl<D: WireEncode + WireSchema> WireEncode for CollisionReport<D>
fn encode_wire(&self, out: &mut Vec<u8>) -> Result<(), WireError>
fn to_wire_bytes(&self) -> Result<Vec<u8>, WireError>
Source§impl<D: WireSchema> WireSchema for CollisionReport<D>
impl<D: WireSchema> WireSchema for CollisionReport<D>
Source§fn wire_schema() -> Cow<'static, [u8]>
fn wire_schema() -> Cow<'static, [u8]>
const REQUIRES_ARITY: bool = false
impl<D: Eq> Eq for CollisionReport<D>
impl<D> StructuralPartialEq for CollisionReport<D>
Auto Trait Implementations§
impl<D> Freeze for CollisionReport<D>
impl<D> RefUnwindSafe for CollisionReport<D>where
D: RefUnwindSafe,
impl<D> Send for CollisionReport<D>where
D: Send,
impl<D> Sync for CollisionReport<D>where
D: Sync,
impl<D> Unpin for CollisionReport<D>where
D: Unpin,
impl<D> UnsafeUnpin for CollisionReport<D>
impl<D> UnwindSafe for CollisionReport<D>where
D: UnwindSafe,
Blanket Implementations§
Source§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
Source§fn type_id(&self) -> TypeId
fn type_id(&self) -> TypeId
TypeId of self. Read moreSource§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
Source§fn borrow(&self) -> &T
fn borrow(&self) -> &T
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§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)self to dest. Read moreSource§impl<T, U> Into<U> for Twhere
U: From<T>,
impl<T, U> Into<U> for Twhere
U: From<T>,
Source§fn into(self) -> U
fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.