Trait bcder::encode::PrimitiveContent[][src]

pub trait PrimitiveContent: Sized {
    const TAG: Tag;

    fn encoded_len(&self, mode: Mode) -> usize;
fn write_encoded<W: Write>(
        &self,
        mode: Mode,
        target: &mut W
    ) -> Result<(), Error>; fn to_encoded_bytes(&self, mode: Mode) -> Bytes { ... }
fn encode(self) -> Primitive<Self> { ... }
fn encode_as(self, tag: Tag) -> Primitive<Self> { ... }
fn encode_ref(&self) -> Primitive<&Self> { ... }
fn encode_ref_as(&self, tag: Tag) -> Primitive<&Self> { ... } }
Expand description

A type that is encoded as a primitive value.

This trait should be implemented for types that use primitive encoding. It defines, how the content octets of a single primitive value containing a value of the type are to be created. As a consequence, these types gain the encode and encode_as methods from their implementation of this trait.

Note that the trait requires implementing types to be Copy to avoid unnecessary lifetime parameters on the encoder type. For types that aren’t Copy, PrimitiveContent should be implemented on a reference to the type instead.

Associated Constants

The natural tag of an encoded value of this type.

Required methods

Returns the length of the encoded content of this type.

Writes the encoded content to a writer.

Provided methods

Encodes the value to bytes (useful when you need to sign a structure)

Returns a value encoder for this content using the natural tag.

This is identical to self.encode_as(Self::TAG)

Returns a value encoder for this content using the given tag.

The returned value is a content encoder that produces a single primitive BER encoded value. The tag for this value is explicitely given via the tag argument.

Returns a value encoder for a reference using the natural tag.

Returns a value encoder for a reference using the given tag.

Implementations on Foreign Types

Implementors