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

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> { ... } }

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

const TAG: Tag

The natural tag of an encoded value of this type.

Loading content...

Required methods

fn encoded_len(&self, mode: Mode) -> usize

Returns the length of the encoded content of this type.

fn write_encoded<W: Write>(
    &self,
    mode: Mode,
    target: &mut W
) -> Result<(), Error>

Writes the encoded content to a writer.

Loading content...

Provided methods

fn to_encoded_bytes(&self, mode: Mode) -> Bytes

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

fn encode(self) -> Primitive<Self>

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

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

fn encode_as(self, tag: Tag) -> Primitive<Self>

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.

fn encode_ref(&self) -> Primitive<&Self>

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

fn encode_ref_as(&self, tag: Tag) -> Primitive<&Self>

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

Loading content...

Implementations on Foreign Types

impl<'a, T: PrimitiveContent> PrimitiveContent for &'a T[src]

impl PrimitiveContent for u8[src]

impl PrimitiveContent for u16[src]

impl PrimitiveContent for u32[src]

impl PrimitiveContent for u64[src]

impl PrimitiveContent for u128[src]

impl PrimitiveContent for i8[src]

impl PrimitiveContent for i16[src]

impl PrimitiveContent for i32[src]

impl PrimitiveContent for i64[src]

impl PrimitiveContent for i128[src]

impl PrimitiveContent for ()[src]

impl PrimitiveContent for bool[src]

impl<'a> PrimitiveContent for &'a [u8][src]

Loading content...

Implementors

impl PrimitiveContent for BitString[src]

impl<'a> PrimitiveContent for &'a Integer[src]

impl<'a> PrimitiveContent for &'a Unsigned[src]

impl<T: AsRef<[u8]>> PrimitiveContent for Oid<T>[src]

Loading content...