Trait transformable::Encodable
source · pub trait Encodable: Send + Sync {
type Error: Error + Send + Sync + 'static;
// Required methods
fn encode(&self, dst: &mut [u8]) -> Result<usize, Self::Error>;
fn encoded_len(&self) -> usize;
// Provided methods
fn encode_to_vec(&self) -> Result<Vec<u8>, Self::Error> { ... }
fn encode_to_writer<W: Write>(&self, writer: &mut W) -> Result<usize> { ... }
fn encode_to_async_writer<W: AsyncWrite + Send + Unpin>(
&self,
writer: &mut W
) -> impl Future<Output = Result<usize>> + Send { ... }
}
Available on crate feature
std
only.Expand description
The type can transform its representation to byte form.
Required Associated Types§
Required Methods§
sourcefn encode(&self, dst: &mut [u8]) -> Result<usize, Self::Error>
fn encode(&self, dst: &mut [u8]) -> Result<usize, Self::Error>
Encodes the value into the given buffer for transmission.
Returns the number of bytes written to the buffer.
sourcefn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Returns the encoded length of the value. This is used to pre-allocate a buffer for encoding.
Provided Methods§
sourcefn encode_to_vec(&self) -> Result<Vec<u8>, Self::Error>
fn encode_to_vec(&self) -> Result<Vec<u8>, Self::Error>
Encodes the value into a vec for transmission.
sourcefn encode_to_writer<W: Write>(&self, writer: &mut W) -> Result<usize>
fn encode_to_writer<W: Write>(&self, writer: &mut W) -> Result<usize>
Encodes the value into the given writer for transmission.
sourcefn encode_to_async_writer<W: AsyncWrite + Send + Unpin>(
&self,
writer: &mut W
) -> impl Future<Output = Result<usize>> + Send
Available on crate feature async
only.
fn encode_to_async_writer<W: AsyncWrite + Send + Unpin>( &self, writer: &mut W ) -> impl Future<Output = Result<usize>> + Send
async
only.Encodes the value into the given async writer for transmission.
Object Safety§
This trait is not object safe.