Trait der::Encode

source ·
pub trait Encode {
    // Required methods
    fn encoded_len(&self) -> Result<Length>;
    fn encode(&self, encoder: &mut impl Writer) -> Result<()>;

    // Provided methods
    fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]> { ... }
    fn encode_to_vec(&self, buf: &mut Vec<u8>) -> Result<Length> { ... }
    fn to_der(&self) -> Result<Vec<u8>> { ... }
}
Expand description

Encoding trait.

Required Methods§

source

fn encoded_len(&self) -> Result<Length>

Compute the length of this value in bytes when encoded as ASN.1 DER.

source

fn encode(&self, encoder: &mut impl Writer) -> Result<()>

Encode this value as ASN.1 DER using the provided Writer.

Provided Methods§

source

fn encode_to_slice<'a>(&self, buf: &'a mut [u8]) -> Result<&'a [u8]>

Encode this value to the provided byte slice, returning a sub-slice containing the encoded message.

source

fn encode_to_vec(&self, buf: &mut Vec<u8>) -> Result<Length>

Encode this message as ASN.1 DER, appending it to the provided byte vector.

source

fn to_der(&self) -> Result<Vec<u8>>

Encode this type as DER, returning a byte vector.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl<T> Encode for &Option<T>
where T: Encode,

source§

fn encoded_len(&self) -> Result<Length>

source§

fn encode(&self, encoder: &mut impl Writer) -> Result<()>

source§

impl<T> Encode for Option<T>
where T: Encode,

source§

fn encoded_len(&self) -> Result<Length>

source§

fn encode(&self, writer: &mut impl Writer) -> Result<()>

source§

impl<T> Encode for PhantomData<T>
where T: ?Sized,

Dummy implementation for PhantomData which allows deriving implementations on structs with phantom fields.

source§

fn encoded_len(&self) -> Result<Length>

source§

fn encode(&self, _writer: &mut impl Writer) -> Result<()>

Implementors§