pub struct RasnConfig {
pub opaque_open_types: bool,
pub default_wildcard_imports: bool,
pub generate_from_impls: bool,
pub custom_imports: Vec<String>,
pub type_annotations: Vec<String>,
pub no_std_compliant_bindings: bool,
}Expand description
A configuration for the Rasn backend
Fields§
§opaque_open_types: boolASN.1 Open Types are represented as the rasn::types::Any type,
which holds a binary content. If opaque_open_types is false,
the compiler will generate additional de-/encode methods for
all rust types that hold an open type.
For example, bindings for a SEQUENCE with a field of Open Type
value will include a method for explicitly decoding the Open Type field.
Non-opaque open types are still experimental. If you have trouble
generating correct bindings, switch back to opaque open types.
default_wildcard_imports: boolThe compiler will try to match module import dependencies of the ASN.1
module as close as possible, importing only those types from other modules
that are imported in the ASN.1 module. If the default_wildcard_imports
is set to true , the compiler will import the entire module using
the wildcard * for each module that the input ASN.1 module imports from.
generate_from_impls: boolTo make working with the generated types a bit more ergonomic, the compiler
can generate From impls for the wrapper inner types in a CHOICE, as long
as the generated impls are not ambiguous.
This is disabled by default to generate less code, but can be enabled with
generate_from_impls set to true.
custom_imports: Vec<String>Stringified paths to items that will be imported into all generated modules with a
use declaration.
For example vec![String::from("my::module::*"), String::from("path::to::my::Struct")].
type_annotations: Vec<String>Annotations to be added to all generated rust types of the bindings. Each vector element
will generate a new line of annotations. Note that the compiler will automatically add all pound-derives
needed by rasn except Eq and Hash, which are needed only when working with SETs.
Default: vec![String::from("#[derive(AsnType, Debug, Clone, Decode, Encode, PartialEq, Eq, Hash)]")]
no_std_compliant_bindings: boolCreate bindings for a no_std environment