pub enum Type {
Show 30 variants
Sequence(Vec<SequenceField>),
SequenceOf(Box<Type>, Option<SizeConstraint>),
Set(Vec<SequenceField>),
SetOf(Box<Type>, Option<SizeConstraint>),
Choice(Vec<ChoiceVariant>),
TypeRef(String),
Integer(Option<ValueConstraint>, Vec<NamedNumber>),
Enumerated(Vec<NamedNumber>),
Real,
Boolean,
OctetString(Option<SizeConstraint>),
BitString(Option<SizeConstraint>),
ObjectIdentifier,
Null,
Utf8String(Option<SizeConstraint>),
PrintableString(Option<SizeConstraint>),
IA5String(Option<SizeConstraint>),
TeletexString(Option<SizeConstraint>),
UniversalString(Option<SizeConstraint>),
BmpString(Option<SizeConstraint>),
GeneralString(Option<SizeConstraint>),
NumericString(Option<SizeConstraint>),
VisibleString(Option<SizeConstraint>),
UtcTime,
GeneralizedTime,
Tagged {
tag: TagInfo,
inner: Box<Type>,
},
Constrained {
base_type: Box<Type>,
constraint: Constraint,
},
Any,
AnyDefinedBy(String),
Class(Vec<ClassField>),
}Expand description
ASN.1 type
Variants§
Sequence(Vec<SequenceField>)
SEQUENCE type
SequenceOf(Box<Type>, Option<SizeConstraint>)
SEQUENCE OF type with optional size constraint (legacy)
Set(Vec<SequenceField>)
SET type
SetOf(Box<Type>, Option<SizeConstraint>)
SET OF type with optional size constraint (legacy)
Choice(Vec<ChoiceVariant>)
CHOICE type
TypeRef(String)
Reference to another type
Integer(Option<ValueConstraint>, Vec<NamedNumber>)
INTEGER with optional value constraint (legacy) and optional named numbers
Enumerated(Vec<NamedNumber>)
ENUMERATED with named values
Real
REAL (floating-point number)
Boolean
BOOLEAN
OctetString(Option<SizeConstraint>)
OCTET STRING with optional size constraint (legacy)
BitString(Option<SizeConstraint>)
BIT STRING with optional size constraint (legacy)
ObjectIdentifier
OBJECT IDENTIFIER
Null
NULL
Utf8String(Option<SizeConstraint>)
UTF8String with optional size constraint (legacy)
PrintableString(Option<SizeConstraint>)
PrintableString with optional size constraint (legacy)
IA5String(Option<SizeConstraint>)
IA5String with optional size constraint (legacy)
TeletexString(Option<SizeConstraint>)
TeletexString (also known as T61String) with optional size constraint
UniversalString(Option<SizeConstraint>)
UniversalString with optional size constraint
BmpString(Option<SizeConstraint>)
BMPString (Basic Multilingual Plane) with optional size constraint
GeneralString(Option<SizeConstraint>)
GeneralString with optional size constraint
NumericString(Option<SizeConstraint>)
NumericString with optional size constraint
VisibleString(Option<SizeConstraint>)
VisibleString with optional size constraint
UtcTime
UTCTime
GeneralizedTime
GeneralizedTime
Tagged
Tagged type
Constrained
Constrained type (X.680 compliant)
Any
ANY type (legacy ASN.1, used for extensibility)
AnyDefinedBy(String)
ANY DEFINED BY field (legacy ASN.1, value depends on another field)
Class(Vec<ClassField>)
ASN.1 Information Object Class definition (X.681 §9)
NAME ::= CLASS { &field TYPE [UNIQUE] [OPTIONAL], ... } [WITH SYNTAX { ... }]
Classes are meta-schema constructs used to constrain parameterized types. They have no DER encoding and generate only a documentation comment in Rust.