pub trait Message {
// Required methods
fn decode<D>(decoder: &mut Decoder<D>, input: &[u8]) -> Result<Self, Error>
where D: Digest,
Self: Sized;
fn encode<'a>(&self, buffer: &'a mut [u8]) -> Result<&'a [u8], Error>;
fn encoded_len(&self) -> usize;
// Provided method
fn encode_vec(&self) -> Result<Vec<u8>, Error> { ... }
}
Expand description
Veriform messages.
This trait provides the primary API for encoding/decoding messages as Veriform.
It’s not intended to be implemented directly, but instead derived using
the veriform::Message
procedural macro.
Required Methods§
Sourcefn decode<D>(decoder: &mut Decoder<D>, input: &[u8]) -> Result<Self, Error>
fn decode<D>(decoder: &mut Decoder<D>, input: &[u8]) -> Result<Self, Error>
Decode a Veriform message contained in the provided slice using the
given Decoder
.
Sourcefn encode<'a>(&self, buffer: &'a mut [u8]) -> Result<&'a [u8], Error>
fn encode<'a>(&self, buffer: &'a mut [u8]) -> Result<&'a [u8], Error>
Encode this message as Veriform into the provided buffer, returning a slice containing the encoded message on success.
Sourcefn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Get the length of a message after being encoded as Veriform.