Skip to main content

DeriveMode

Enum DeriveMode 

Source
pub enum DeriveMode {
    FeatureGated,
    Always,
    Custom(String),
}
Expand description

Controls how derive macros for ASN.1 types are emitted in generated code.

The generated code uses synta_derive proc-macros (Asn1Sequence, Asn1Choice, Asn1Set) as well as helper attributes (asn1(tag(…)), asn1(optional), asn1(rawder)). By default these are wrapped in #[cfg_attr(feature = "derive", …)] so that the consuming crate can make synta-derive an optional dependency. Third-party crates that always depend on synta-derive can use DeriveMode::Always to emit the attributes unconditionally, removing the need to declare a derive Cargo feature.

Variants§

§

FeatureGated

Emit #[cfg_attr(feature = "derive", derive(Asn1Sequence))] (default).

Derive macros and their helper attributes are gated behind a derive Cargo feature. The consuming crate must declare [features] derive = ["dep:synta-derive"] (or similar) in its Cargo.toml.

§

Always

Emit #[derive(Asn1Sequence)] unconditionally — no feature gate.

Use this when the consuming crate always depends on synta-derive and does not want to expose a derive Cargo feature.

§

Custom(String)

Emit #[cfg_attr(feature = "<name>", derive(Asn1Sequence))] with a custom feature name instead of "derive".

Useful when the consuming crate exposes its own feature name for derive support (e.g. "asn1-derive" or "full").

Trait Implementations§

Source§

impl Clone for DeriveMode

Source§

fn clone(&self) -> DeriveMode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for DeriveMode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeriveMode

Source§

fn default() -> DeriveMode

Returns the “default value” for a type. Read more
Source§

impl PartialEq for DeriveMode

Source§

fn eq(&self, other: &DeriveMode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for DeriveMode

Source§

impl StructuralPartialEq for DeriveMode

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.