der

Trait 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.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so 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§