Asn1Compiler

Struct Asn1Compiler 

Source
pub struct Asn1Compiler { /* private fields */ }
Expand description

ASN.1 Compiler Struct.

An application should create a Compiler Structure and will call Public API functions on the compiler.

Implementations§

Source§

impl Asn1Compiler

Source

pub fn new( output: &str, visibility: &Visibility, codecs: Vec<Codec>, derives: Vec<Derive>, ) -> Self

Create a new Instance of the Compiler structure.

Source

pub fn add_module(&mut self, module: Asn1Module) -> bool

Add a module to the list of known modules.

If the module alredy exists, returns false else returns true.

Source

pub fn set_rustfmt_generated_code(&mut self, rustfmt_generated_code: bool)

Whether to use rustfmt to format the generated code after it is made.

§Arguments
  • rustfmt_generated_code - Whether to format the generated code with rustfmt when calling the generate method. If set to false, rustfmt will not be used.
Source

pub fn resolve_modules(&mut self) -> Result<()>

Resolve Modules order and definitions within those modules.

First Makes sure that all the modules that have IMPORTs are indeed added to us. Then definitions in each of the modules are ‘resolved’. Calls the Resolver functions to do that. Modules are Topologically Sorted before they are resolved and definitions within modules are topologically sorted as well. This makes Error handling for undefined definitions much easier.

Source

pub fn generate(&mut self) -> Result<()>

Generate the code

Source

pub fn compile_string( &mut self, modules_string: &str, parse_only: bool, ) -> Result<()>

Compilation Driver for a String as module(s).

Source

pub fn compile_files<T: AsRef<Path> + Debug>( &mut self, files: &[T], ) -> Result<()>

The Actual compilation driver

Trait Implementations§

Source§

impl Debug for Asn1Compiler

Source§

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

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

impl Default for Asn1Compiler

Source§

fn default() -> Self

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

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> 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, 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.