/// # BerSequence custom derive /// /// `BerSequence` is a custom derive attribute, to derive a BER [`Sequence`](super::Sequence) parser automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// /// `DerSequence` implies `BerSequence`, and will conflict with this custom derive. Use `BerSequence` when you only want the /// above traits derived. /// /// Parsers will be automatically derived from struct fields. Every field type must implement the [`FromBer`](super::FromBer) trait. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 structure: ///
/// S ::= SEQUENCE {
///     a INTEGER(0..2^32),
///     b INTEGER(0..2^16),
///     c INTEGER(0..2^16),
/// }
/// 
/// /// Define a structure and add the `BerSequence` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(BerSequence)] /// struct S { /// a: u32, /// b: u16, /// c: u16 /// } /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(BerSequence)] /// #[debug_derive] /// struct S { /// a: u32, /// } /// ``` pub use asn1_rs_derive::BerSequence; /// # DerSequence custom derive /// /// `DerSequence` is a custom derive attribute, to derive both BER and DER [`Sequence`](super::Sequence) parsers automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// - [`CheckDerConstraints`](super::CheckDerConstraints) /// - [`FromDer`](super::FromDer) /// /// `DerSequence` implies `BerSequence`, and will conflict with this custom derive. /// /// Parsers will be automatically derived from struct fields. Every field type must implement the [`FromDer`](super::FromDer) trait. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 structure: ///
/// S ::= SEQUENCE {
///     a INTEGER(0..2^32),
///     b INTEGER(0..2^16),
///     c INTEGER(0..2^16),
/// }
/// 
/// /// Define a structure and add the `DerSequence` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(DerSequence)] /// struct S { /// a: u32, /// b: u16, /// c: u16 /// } /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(DerSequence)] /// #[debug_derive] /// struct S { /// a: u32, /// } /// ``` pub use asn1_rs_derive::DerSequence; /// # BerSet custom derive /// /// `BerSet` is a custom derive attribute, to derive a BER [`Set`](super::Set) parser automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// /// `DerSet` implies `BerSet`, and will conflict with this custom derive. Use `BerSet` when you only want the /// above traits derived. /// /// Parsers will be automatically derived from struct fields. Every field type must implement the [`FromBer`](super::FromBer) trait. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 structure: ///
/// S ::= SET {
///     a INTEGER(0..2^32),
///     b INTEGER(0..2^16),
///     c INTEGER(0..2^16),
/// }
/// 
/// /// Define a structure and add the `BerSet` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(BerSet)] /// struct S { /// a: u32, /// b: u16, /// c: u16 /// } /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(BerSet)] /// #[debug_derive] /// struct S { /// a: u32, /// } /// ``` pub use asn1_rs_derive::BerSet; /// # DerSet custom derive /// /// `DerSet` is a custom derive attribute, to derive both BER and DER [`Set`](super::Set) parsers automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// - [`CheckDerConstraints`](super::CheckDerConstraints) /// - [`FromDer`](super::FromDer) /// /// `DerSet` implies `BerSet`, and will conflict with this custom derive. /// /// Parsers will be automatically derived from struct fields. Every field type must implement the [`FromDer`](super::FromDer) trait. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 structure: ///
/// S ::= SEt {
///     a INTEGER(0..2^32),
///     b INTEGER(0..2^16),
///     c INTEGER(0..2^16),
/// }
/// 
/// /// Define a structure and add the `DerSet` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(DerSet)] /// struct S { /// a: u32, /// b: u16, /// c: u16 /// } /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(DerSet)] /// #[debug_derive] /// struct S { /// a: u32, /// } /// ``` pub use asn1_rs_derive::DerSet; /// # BerAlias custom derive /// /// `BerAlias` is a custom derive attribute, to derive a BER object parser automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// - [`CheckDerConstraints`](super::CheckDerConstraints) /// - [`FromDer`](super::FromDer) /// /// `DerAlias` implies `BerAlias`, and will conflict with this custom derive. Use `BerAlias` when you only want the /// above traits derived. /// /// When defining alias, only unnamed (tuple) structs with one field are supported. /// /// Parser will be automatically derived from the struct field. This field type must implement the `TryFrom` trait. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 object: ///
/// MyInt ::= INTEGER(0..2^32)
/// 
/// /// Define a structure and add the `BerAlias` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(BerAlias)] /// struct S(pub u32); /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(BerAlias)] /// #[debug_derive] /// struct S(pub u32); /// ``` pub use asn1_rs_derive::BerAlias; /// # DerAlias custom derive /// /// `DerAlias` is a custom derive attribute, to derive a DER object parser automatically from the structure definition. /// This attribute will automatically derive implementations for the following traits: /// - [`TryFrom`](super::Any), also providing [`FromBer`](super::FromBer) /// - [`Tagged`](super::Tagged) /// /// `DerAlias` implies `BerAlias`, and will conflict with this custom derive. /// /// When defining alias, only unnamed (tuple) structs with one field are supported. /// /// Parser will be automatically derived from the struct field. This field type must implement the `TryFrom` and `FromDer` traits. /// /// See [`derive`](crate::doc::derive) documentation for more examples and documentation. /// /// ## Examples /// /// To parse the following ASN.1 object: ///
/// MyInt ::= INTEGER(0..2^32)
/// 
/// /// Define a structure and add the `DerAlias` derive: /// /// ```rust /// use asn1_rs::*; /// /// #[derive(DerAlias)] /// struct S(pub u32); /// ``` /// /// ## Debugging /// /// To help debugging the generated code, the `#[debug_derive]` attribute has been added. /// /// When this attribute is specified, the generated code will be printed to `stderr` during compilation. /// /// Example: /// ```rust /// use asn1_rs::*; /// /// #[derive(DerAlias)] /// #[debug_derive] /// struct S(pub u32); /// ``` pub use asn1_rs_derive::DerAlias;