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>

Available on crate feature alloc only.

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

source

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

Available on crate feature alloc only.

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§

source§

impl Encode for Tag

source§

impl Encode for Document

Available on crate feature alloc only.
source§

impl Encode for Header

source§

impl Encode for IndefiniteLength

source§

impl Encode for Length

source§

impl<'a, T> Encode for EncodeRef<'a, T>
where T: Encode,

source§

impl<T> Encode for T
where T: EncodeValue + Tagged,