pub trait Language {
type OptionsBuilder;
type Options;
// Required methods
fn name() -> &'static str;
fn empty_options() -> Self::OptionsBuilder;
fn add_option(
builder: &mut Self::OptionsBuilder,
name: &str,
value: OsString,
) -> Result<(), GeneratorError>;
fn finalize_options(
builder: Self::OptionsBuilder,
) -> Result<Self::Options, GeneratorError>;
fn generate<Output: for<'output> OutputHandler<'output>>(
model: &Verilization,
options: Self::Options,
output: &mut Output,
) -> Result<(), GeneratorError>;
}Expand description
Defines a language supported by Verilization.
Required Associated Types§
Sourcetype OptionsBuilder
type OptionsBuilder
An intermediate step for the language options.
Required Methods§
Sourcefn empty_options() -> Self::OptionsBuilder
fn empty_options() -> Self::OptionsBuilder
Gets an option builder with no options set.
Sourcefn add_option(
builder: &mut Self::OptionsBuilder,
name: &str,
value: OsString,
) -> Result<(), GeneratorError>
fn add_option( builder: &mut Self::OptionsBuilder, name: &str, value: OsString, ) -> Result<(), GeneratorError>
Sets an option.
Sourcefn finalize_options(
builder: Self::OptionsBuilder,
) -> Result<Self::Options, GeneratorError>
fn finalize_options( builder: Self::OptionsBuilder, ) -> Result<Self::Options, GeneratorError>
Ensures that any required options have been set and finalizes the options.
Sourcefn generate<Output: for<'output> OutputHandler<'output>>(
model: &Verilization,
options: Self::Options,
output: &mut Output,
) -> Result<(), GeneratorError>
fn generate<Output: for<'output> OutputHandler<'output>>( model: &Verilization, options: Self::Options, output: &mut Output, ) -> Result<(), GeneratorError>
Generates serialization code for the language.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".