pub struct Message<V: Validator, S: Signature, A: AggregateSignature, B: Block> { /* private fields */ }Expand description
A message from the Tendermint consensus process.
This encapsulates a [Data] with the validator, block and round numbers, and signature.
Trait Implementations§
Source§impl<V, S, A, B> BorshDeserialize for Message<V, S, A, B>where
V: BorshDeserialize + Validator,
S: BorshDeserialize + Signature,
A: BorshDeserialize + AggregateSignature,
B: BorshDeserialize + Block,
B::Hash: BorshDeserialize,
impl<V, S, A, B> BorshDeserialize for Message<V, S, A, B>where
V: BorshDeserialize + Validator,
S: BorshDeserialize + Signature,
A: BorshDeserialize + AggregateSignature,
B: BorshDeserialize + Block,
B::Hash: BorshDeserialize,
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<V, S, A, B> BorshSerialize for Message<V, S, A, B>where
V: BorshSerialize + Validator,
S: BorshSerialize + Signature,
A: BorshSerialize + AggregateSignature,
B: BorshSerialize + Block,
B::Hash: BorshSerialize,
impl<V, S, A, B> BorshSerialize for Message<V, S, A, B>where
V: BorshSerialize + Validator,
S: BorshSerialize + Signature,
A: BorshSerialize + AggregateSignature,
B: BorshSerialize + Block,
B::Hash: BorshSerialize,
Source§impl<V: Clone + Validator, S: Clone + Signature, A: Clone + AggregateSignature, B: Clone + Block> Clone for Message<V, S, A, B>
impl<V: Clone + Validator, S: Clone + Signature, A: Clone + AggregateSignature, B: Clone + Block> Clone for Message<V, S, A, B>
impl<V: Validator, S: Signature, A: AggregateSignature, B: Block> Eq for Message<V, S, A, B>
Source§impl<V: Validator, S: Signature, A: AggregateSignature, B: Block> PartialEq for Message<V, S, A, B>
impl<V: Validator, S: Signature, A: AggregateSignature, B: Block> PartialEq for Message<V, S, A, B>
Source§fn eq(&self, other: &Self) -> bool
fn eq(&self, other: &Self) -> bool
This equality is semantic and does not consider if any present signatures are equal. This ensures even for signature schemes with malleable signatures, multiple signatures over the same messages are not semantically treated as distinct signatures. However, this also means a value with an invalid signature will be considered equal to a message with a valid signature.
Auto Trait Implementations§
impl<V, S, A, B> Freeze for Message<V, S, A, B>
impl<V, S, A, B> RefUnwindSafe for Message<V, S, A, B>where
V: RefUnwindSafe,
S: RefUnwindSafe,
B: RefUnwindSafe,
<B as Block>::Hash: RefUnwindSafe,
A: RefUnwindSafe,
impl<V, S, A, B> Send for Message<V, S, A, B>
impl<V, S, A, B> Sync for Message<V, S, A, B>
impl<V, S, A, B> Unpin for Message<V, S, A, B>
impl<V, S, A, B> UnsafeUnpin for Message<V, S, A, B>where
V: UnsafeUnpin,
S: UnsafeUnpin,
B: UnsafeUnpin,
<B as Block>::Hash: UnsafeUnpin,
A: UnsafeUnpin,
impl<V, S, A, B> UnwindSafe for Message<V, S, A, B>
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