Trait bcder::encode::PrimitiveContent
source · pub trait PrimitiveContent: Sized {
const TAG: Tag;
// Required methods
fn encoded_len(&self, mode: Mode) -> usize;
fn write_encoded<W: Write>(
&self,
mode: Mode,
target: &mut W
) -> Result<(), Error>;
// Provided methods
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.
Required Associated Constants§
Required Methods§
sourcefn encoded_len(&self, mode: Mode) -> usize
fn encoded_len(&self, mode: Mode) -> usize
Returns the length of the encoded content of this type.
Provided Methods§
sourcefn to_encoded_bytes(&self, mode: Mode) -> Bytes
fn to_encoded_bytes(&self, mode: Mode) -> Bytes
Encodes the value to bytes (useful when you need to sign a structure)
sourcefn encode(self) -> Primitive<Self>
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)
sourcefn encode_as(self, tag: Tag) -> Primitive<Self>
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.
sourcefn encode_ref(&self) -> Primitive<&Self>
fn encode_ref(&self) -> Primitive<&Self>
Returns a value encoder for a reference using the natural tag.
sourcefn encode_ref_as(&self, tag: Tag) -> Primitive<&Self>
fn encode_ref_as(&self, tag: Tag) -> Primitive<&Self>
Returns a value encoder for a reference using the given tag.