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

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

Encoding trait.

Required Methods§

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

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

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

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

Provided Methods§

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

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

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

Available on crate feature alloc only.

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

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

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§

§

impl Encode for Version

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

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

§

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

§

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

Implementors§

§

impl Encode for Tag

§

impl Encode for Document

§

impl Encode for Header

§

impl Encode for IndefiniteLength

§

impl Encode for Length

§

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

§

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