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", so this trait is not object safe.