Trait rasn_compiler::prelude::Backend
source · pub trait Backend: Sized + Default {
type Config: Sized + Default + Debug;
const FILE_EXTENSION: &'static str;
// Required methods
fn generate_module(
&self,
top_level_declarations: Vec<ToplevelDefinition>
) -> Result<GeneratedModule, GeneratorError>;
fn generate(
&self,
tld: ToplevelDefinition
) -> Result<String, GeneratorError>;
fn config(&self) -> &Self::Config;
fn from_config(config: Self::Config) -> Self;
// Provided method
fn format_bindings(bindings: &str) -> Result<String, Box<dyn Error>> { ... }
}
Expand description
Implementors of the Backend
trait can be used
as a backend to the compiler in order to create bindings
for other frameworks and languages than the default backend.
Required Associated Types§
Required Associated Constants§
sourceconst FILE_EXTENSION: &'static str
const FILE_EXTENSION: &'static str
File extension that should be used for output file containing the generated bindings.
For example: .ts
for Typescript, .rs
for Rasn bindings.
Required Methods§
sourcefn generate_module(
&self,
top_level_declarations: Vec<ToplevelDefinition>
) -> Result<GeneratedModule, GeneratorError>
fn generate_module( &self, top_level_declarations: Vec<ToplevelDefinition> ) -> Result<GeneratedModule, GeneratorError>
generates bindings for an ASN.1 module
§Params
top_level_declarations
vector of [TopLevelDeclaration]s that are defined in the ASN.1 module
sourcefn generate(&self, tld: ToplevelDefinition) -> Result<String, GeneratorError>
fn generate(&self, tld: ToplevelDefinition) -> Result<String, GeneratorError>
generates bindings for a single ASN.1 item
§Params
tld
[TopLevelDeclaration] for which the bindings should be generated
sourcefn from_config(config: Self::Config) -> Self
fn from_config(config: Self::Config) -> Self
Creates a backend from its config
Provided Methods§
Object Safety§
This trait is not object safe.