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

    // Provided method
    fn header(&self) -> Result<Header, Error>
       where Self: Tagged { ... }
}
Available on crate feature pkcs8 only.
Expand description

Encode the value part of a Tag-Length-Value encoded field, sans the [Tag] and Length.

Required Methods§

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

Compute the length of this value (sans [Tag]+Length header) when encoded as ASN.1 DER.

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

Encode value (sans [Tag]+Length header) as ASN.1 DER using the provided Writer.

Provided Methods§

fn header(&self) -> Result<Header, Error>
where Self: Tagged,

Get the Header used to encode this value.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl EncodeValue for bool

§

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

§

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

§

impl EncodeValue for i8

§

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

§

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

§

impl EncodeValue for i16

§

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

§

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

§

impl EncodeValue for i32

§

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

§

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

§

impl EncodeValue for i64

§

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

§

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

§

impl EncodeValue for i128

§

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

§

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

§

impl EncodeValue for str

§

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

§

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

§

impl EncodeValue for u8

§

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

§

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

§

impl EncodeValue for u16

§

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

§

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

§

impl EncodeValue for u32

§

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

§

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

§

impl EncodeValue for u64

§

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

§

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

§

impl EncodeValue for u128

§

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

§

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

§

impl EncodeValue for ()

§

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

§

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

§

impl EncodeValue for String

Available on crate feature alloc only.
§

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

§

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

§

impl EncodeValue for SystemTime

Available on crate feature std only.
§

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

§

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

§

impl<T> EncodeValue for Box<T>
where T: EncodeValue,

Available on crate feature alloc only.
§

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

§

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

§

impl<T> EncodeValue for Vec<T>
where T: Encode,

Available on crate feature alloc only.
§

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

§

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

§

impl<T, const N: usize> EncodeValue for [T; N]
where T: Encode,

§

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

§

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

Implementors§

§

impl EncodeValue for BitStringRef<'_>

§

impl EncodeValue for ObjectIdentifier

§

impl EncodeValue for PrivateKeyInfo<'_>

§

impl EncodeValue for BitString

§

impl EncodeValue for BmpString

§

impl EncodeValue for GeneralizedTime

§

impl EncodeValue for Ia5String

§

impl EncodeValue for Int

§

impl EncodeValue for Null

§

impl EncodeValue for OctetString

§

impl EncodeValue for OctetStringRef<'_>

§

impl EncodeValue for PrintableString

§

impl EncodeValue for SequenceRef<'_>

§

impl EncodeValue for TeletexString

§

impl EncodeValue for Uint

§

impl EncodeValue for UtcTime

§

impl EncodeValue for Any

§

impl EncodeValue for AnyRef<'_>

§

impl EncodeValue for DateTime

§

impl<'a> EncodeValue for Ia5StringRef<'a>

§

impl<'a> EncodeValue for IntRef<'a>

§

impl<'a> EncodeValue for PrintableStringRef<'a>

§

impl<'a> EncodeValue for TeletexStringRef<'a>

§

impl<'a> EncodeValue for UintRef<'a>

§

impl<'a> EncodeValue for Utf8StringRef<'a>

§

impl<'a> EncodeValue for VideotexStringRef<'a>

§

impl<'a, Params, Key> EncodeValue for SubjectPublicKeyInfo<Params, Key>
where Params: Choice<'a> + Encode, Key: Encode,

§

impl<'a, T> EncodeValue for ContextSpecificRef<'a, T>
where T: EncodeValue + Tagged,

§

impl<'a, T> EncodeValue for SetOfVec<T>
where T: 'a + Decode<'a> + Encode + DerOrd,

Available on crate feature alloc only.
§

impl<'a, T> EncodeValue for EncodeValueRef<'a, T>
where T: EncodeValue,

§

impl<'a, T, const N: usize> EncodeValue for SetOf<T, N>
where T: 'a + Decode<'a> + Encode + DerOrd,

§

impl<Params> EncodeValue for AlgorithmIdentifier<Params>
where Params: Encode,

§

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

§

impl<T, const N: usize> EncodeValue for SequenceOf<T, N>
where T: Encode,