rasn::enc

Trait Encoder

Source
pub trait Encoder {
    type Ok;
    type Error: Error + Into<EncodeError> + From<EncodeError>;

Show 38 methods // Required methods fn codec(&self) -> Codec; fn encode_any( &mut self, tag: Tag, value: &Any, ) -> Result<Self::Ok, Self::Error>; fn encode_bool( &mut self, tag: Tag, value: bool, ) -> Result<Self::Ok, Self::Error>; fn encode_bit_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BitStr, ) -> Result<Self::Ok, Self::Error>; fn encode_enumerated<E: Enumerated>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error>; fn encode_object_identifier( &mut self, tag: Tag, value: &[u32], ) -> Result<Self::Ok, Self::Error>; fn encode_integer( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BigInt, ) -> Result<Self::Ok, Self::Error>; fn encode_null(&mut self, tag: Tag) -> Result<Self::Ok, Self::Error>; fn encode_octet_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &[u8], ) -> Result<Self::Ok, Self::Error>; fn encode_general_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &GeneralString, ) -> Result<Self::Ok, Self::Error>; fn encode_utf8_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &str, ) -> Result<Self::Ok, Self::Error>; fn encode_visible_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &VisibleString, ) -> Result<Self::Ok, Self::Error>; fn encode_ia5_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &Ia5String, ) -> Result<Self::Ok, Self::Error>; fn encode_printable_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &PrintableString, ) -> Result<Self::Ok, Self::Error>; fn encode_numeric_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &NumericString, ) -> Result<Self::Ok, Self::Error>; fn encode_teletex_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &TeletexString, ) -> Result<Self::Ok, Self::Error>; fn encode_bmp_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BmpString, ) -> Result<Self::Ok, Self::Error>; fn encode_generalized_time( &mut self, tag: Tag, value: &GeneralizedTime, ) -> Result<Self::Ok, Self::Error>; fn encode_utc_time( &mut self, tag: Tag, value: &UtcTime, ) -> Result<Self::Ok, Self::Error>; fn encode_explicit_prefix<V: Encode>( &mut self, tag: Tag, value: &V, ) -> Result<Self::Ok, Self::Error>; fn encode_sequence<C, F>( &mut self, tag: Tag, encoder_scope: F, ) -> Result<Self::Ok, Self::Error> where C: Constructed, F: FnOnce(&mut Self) -> Result<(), Self::Error>; fn encode_sequence_of<E: Encode>( &mut self, tag: Tag, value: &[E], constraints: Constraints<'_>, ) -> Result<Self::Ok, Self::Error>; fn encode_set<C, F>( &mut self, tag: Tag, value: F, ) -> Result<Self::Ok, Self::Error> where C: Constructed, F: FnOnce(&mut Self) -> Result<(), Self::Error>; fn encode_set_of<E: Encode>( &mut self, tag: Tag, value: &SetOf<E>, constraints: Constraints<'_>, ) -> Result<Self::Ok, Self::Error>; fn encode_some<E: Encode>( &mut self, value: &E, ) -> Result<Self::Ok, Self::Error>; fn encode_some_with_tag_and_constraints<E: Encode>( &mut self, tag: Tag, constraints: Constraints<'_>, value: &E, ) -> Result<Self::Ok, Self::Error>; fn encode_none<E: Encode>(&mut self) -> Result<Self::Ok, Self::Error>; fn encode_none_with_tag( &mut self, tag: Tag, ) -> Result<Self::Ok, Self::Error>; fn encode_choice<E: Encode + Choice>( &mut self, constraints: Constraints<'_>, tag: Tag, encode_fn: impl FnOnce(&mut Self) -> Result<Tag, Self::Error>, ) -> Result<Self::Ok, Self::Error>; fn encode_extension_addition<E: Encode>( &mut self, tag: Tag, constraints: Constraints<'_>, value: E, ) -> Result<Self::Ok, Self::Error>; fn encode_extension_addition_group<E>( &mut self, value: Option<&E>, ) -> Result<Self::Ok, Self::Error> where E: Encode + Constructed; // Provided methods fn encode_or_default<E: Encode + Default + PartialEq>( &mut self, value: &E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_with_tag_or_default<E: Encode + Default + PartialEq>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_some_with_tag<E: Encode>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_default<E: Encode + PartialEq>( &mut self, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_default_with_tag<E: Encode + PartialEq>( &mut self, tag: Tag, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_default_with_tag_and_constraints<E: Encode + PartialEq>( &mut self, tag: Tag, constraints: Constraints<'_>, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error> { ... } fn encode_default_with_constraints<E: Encode + PartialEq>( &mut self, constraints: Constraints<'_>, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error> { ... }
}
Expand description

A data format encode any ASN.1 data type.

Required Associated Types§

Required Methods§

Source

fn codec(&self) -> Codec

Returns codec variant of Codec that current encoder is encoding.

Source

fn encode_any(&mut self, tag: Tag, value: &Any) -> Result<Self::Ok, Self::Error>

Encode an unknown ASN.1 value.

Source

fn encode_bool( &mut self, tag: Tag, value: bool, ) -> Result<Self::Ok, Self::Error>

Encode a BOOL value.

Source

fn encode_bit_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BitStr, ) -> Result<Self::Ok, Self::Error>

Encode a BIT STRING value.

Source

fn encode_enumerated<E: Enumerated>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error>

Encode a ENUMERATED value.

Source

fn encode_object_identifier( &mut self, tag: Tag, value: &[u32], ) -> Result<Self::Ok, Self::Error>

Encode a OBJECT IDENTIFIER value.

Source

fn encode_integer( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BigInt, ) -> Result<Self::Ok, Self::Error>

Encode a INTEGER value.

Source

fn encode_null(&mut self, tag: Tag) -> Result<Self::Ok, Self::Error>

Encode a NULL value.

Source

fn encode_octet_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &[u8], ) -> Result<Self::Ok, Self::Error>

Encode a OCTET STRING value.

Source

fn encode_general_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &GeneralString, ) -> Result<Self::Ok, Self::Error>

Encode a GeneralString value.

Source

fn encode_utf8_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &str, ) -> Result<Self::Ok, Self::Error>

Encode a Utf8String value.

Source

fn encode_visible_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &VisibleString, ) -> Result<Self::Ok, Self::Error>

Encode a VisibleString value.

Source

fn encode_ia5_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &Ia5String, ) -> Result<Self::Ok, Self::Error>

Encode a Ia5String value.

Source

fn encode_printable_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &PrintableString, ) -> Result<Self::Ok, Self::Error>

Encode a Ia5String value.

Source

fn encode_numeric_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &NumericString, ) -> Result<Self::Ok, Self::Error>

Encode a NumericString value.

Source

fn encode_teletex_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &TeletexString, ) -> Result<Self::Ok, Self::Error>

Encode a TeletexString value.

Source

fn encode_bmp_string( &mut self, tag: Tag, constraints: Constraints<'_>, value: &BmpString, ) -> Result<Self::Ok, Self::Error>

Encode a BmpString value.

Source

fn encode_generalized_time( &mut self, tag: Tag, value: &GeneralizedTime, ) -> Result<Self::Ok, Self::Error>

Encode a GeneralizedTime value.

Source

fn encode_utc_time( &mut self, tag: Tag, value: &UtcTime, ) -> Result<Self::Ok, Self::Error>

Encode a UtcTime value.

Source

fn encode_explicit_prefix<V: Encode>( &mut self, tag: Tag, value: &V, ) -> Result<Self::Ok, Self::Error>

Encode a explicitly tagged value.

Source

fn encode_sequence<C, F>( &mut self, tag: Tag, encoder_scope: F, ) -> Result<Self::Ok, Self::Error>
where C: Constructed, F: FnOnce(&mut Self) -> Result<(), Self::Error>,

Encode a SEQUENCE value.

Source

fn encode_sequence_of<E: Encode>( &mut self, tag: Tag, value: &[E], constraints: Constraints<'_>, ) -> Result<Self::Ok, Self::Error>

Encode a SEQUENCE OF value.

Source

fn encode_set<C, F>( &mut self, tag: Tag, value: F, ) -> Result<Self::Ok, Self::Error>
where C: Constructed, F: FnOnce(&mut Self) -> Result<(), Self::Error>,

Encode a SET value.

Source

fn encode_set_of<E: Encode>( &mut self, tag: Tag, value: &SetOf<E>, constraints: Constraints<'_>, ) -> Result<Self::Ok, Self::Error>

Encode a SET OF value.

Source

fn encode_some<E: Encode>(&mut self, value: &E) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_some_with_tag_and_constraints<E: Encode>( &mut self, tag: Tag, constraints: Constraints<'_>, value: &E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_none<E: Encode>(&mut self) -> Result<Self::Ok, Self::Error>

Encode the absent value of an optional field.

Source

fn encode_none_with_tag(&mut self, tag: Tag) -> Result<Self::Ok, Self::Error>

Encode the absent value with tag of an optional field.

Source

fn encode_choice<E: Encode + Choice>( &mut self, constraints: Constraints<'_>, tag: Tag, encode_fn: impl FnOnce(&mut Self) -> Result<Tag, Self::Error>, ) -> Result<Self::Ok, Self::Error>

Encode a CHOICE value.

Source

fn encode_extension_addition<E: Encode>( &mut self, tag: Tag, constraints: Constraints<'_>, value: E, ) -> Result<Self::Ok, Self::Error>

Encode a extension addition value.

Source

fn encode_extension_addition_group<E>( &mut self, value: Option<&E>, ) -> Result<Self::Ok, Self::Error>
where E: Encode + Constructed,

Encode a extension addition group value.

Provided Methods§

Source

fn encode_or_default<E: Encode + Default + PartialEq>( &mut self, value: &E, ) -> Result<Self::Ok, Self::Error>

Encode the value a field or skip if it matches the default..

Source

fn encode_with_tag_or_default<E: Encode + Default + PartialEq>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_some_with_tag<E: Encode>( &mut self, tag: Tag, value: &E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_default<E: Encode + PartialEq>( &mut self, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_default_with_tag<E: Encode + PartialEq>( &mut self, tag: Tag, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_default_with_tag_and_constraints<E: Encode + PartialEq>( &mut self, tag: Tag, constraints: Constraints<'_>, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error>

Encode the present value of an optional field.

Source

fn encode_default_with_constraints<E: Encode + PartialEq>( &mut self, constraints: Constraints<'_>, value: &E, default: impl FnOnce() -> E, ) -> Result<Self::Ok, Self::Error>

Encode the present constrained value of an optional field.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Encoder for rasn::aper::Encoder

Source§

impl Encoder for rasn::ber::enc::Encoder

Source§

impl Encoder for rasn::jer::enc::Encoder

Source§

impl Encoder for rasn::oer::enc::Encoder