Derive Macro der::Enumerated

source ·
#[derive(Enumerated)]
{
    // Attributes available to this derive:
    #[asn1]
}
Available on crate feature derive only.
Expand description

Derive decoders and encoders for ASN.1 Enumerated types on a C-like enum type.

§Usage

The Enumerated proc macro requires a C-like enum which impls Copy and has a #[repr] of u8, u16, or u32:

use der::Enumerated;

#[derive(Enumerated, Copy, Clone, Debug, Eq, PartialEq)]
#[repr(u32)]
pub enum CrlReason {
    Unspecified = 0,
    KeyCompromise = 1,
    CaCompromise = 2,
    AffiliationChanged = 3,
    Superseded = 4,
    CessationOfOperation = 5,
    CertificateHold = 6,
    RemoveFromCrl = 8,
    PrivilegeWithdrawn = 9,
    AaCompromised = 10
}

Note that the derive macro will write a TryFrom<...> impl for the provided #[repr], which is used by the decoder.