pub trait Codec: Debug + Sized {
// Required methods
fn encode(&self, bytes: &mut Vec<u8>);
fn read(_: &mut Reader<'_>) -> Result<Self, InvalidMessage>;
// Provided methods
fn get_encoding(&self) -> Vec<u8> ⓘ { ... }
fn read_bytes(bytes: &[u8]) -> Result<Self, InvalidMessage> { ... }
}
Expand description
Trait for implementing encoding and decoding functionality on something.
Required Methods§
sourcefn encode(&self, bytes: &mut Vec<u8>)
fn encode(&self, bytes: &mut Vec<u8>)
Function for encoding itself by appending itself to the provided vec of bytes.
sourcefn read(_: &mut Reader<'_>) -> Result<Self, InvalidMessage>
fn read(_: &mut Reader<'_>) -> Result<Self, InvalidMessage>
Function for decoding itself from the provided reader will return Some if the decoding was successful or None if it was not.
Provided Methods§
sourcefn get_encoding(&self) -> Vec<u8> ⓘ
fn get_encoding(&self) -> Vec<u8> ⓘ
Convenience function for encoding the implementation into a vec and returning it
sourcefn read_bytes(bytes: &[u8]) -> Result<Self, InvalidMessage>
fn read_bytes(bytes: &[u8]) -> Result<Self, InvalidMessage>
Function for wrapping a call to the read function in a Reader for the slice of bytes provided
Object Safety§
This trait is not object safe.
Implementations on Foreign Types§
source§impl<T: Codec + TlsListElement + Debug> Codec for Vec<T>
impl<T: Codec + TlsListElement + Debug> Codec for Vec<T>
Implement Codec
for lists of elements that implement TlsListElement
.
TlsListElement
provides the size of the length prefix for the list.