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.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".