Trait rasn::enc::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.

Object Safety§

This trait is not object safe.

Implementors§

source§

impl Encoder for rasn::aper::enc::Encoder

§

type Ok = ()

§

type Error = EncodeError

source§

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

§

type Ok = ()

§

type Error = EncodeError

source§

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

§

type Ok = ()

§

type Error = EncodeError

source§

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

§

type Ok = ()

§

type Error = EncodeError