pub trait ConstGenerator<'model>: Generator<'model> {
// Required methods
fn constant(&self) -> Named<'model, Constant>;
fn write_header(&mut self) -> Result<(), GeneratorError>;
fn write_constant(
&mut self,
version_name: String,
t: LangType<'model>,
value: LangExpr<'model>,
) -> Result<(), GeneratorError>;
fn write_footer(&mut self) -> Result<(), GeneratorError>;
// Provided methods
fn generate(&mut self) -> Result<(), GeneratorError> { ... }
fn build_value_from_prev(
&self,
prev_ver: &BigUint,
version: &BigUint,
t: &Type,
) -> Result<LangExpr<'model>, GeneratorError> { ... }
}
Required Methods§
fn constant(&self) -> Named<'model, Constant>
fn write_header(&mut self) -> Result<(), GeneratorError>
fn write_constant( &mut self, version_name: String, t: LangType<'model>, value: LangExpr<'model>, ) -> Result<(), GeneratorError>
Provided Methods§
fn generate(&mut self) -> Result<(), GeneratorError>
fn build_value_from_prev( &self, prev_ver: &BigUint, version: &BigUint, t: &Type, ) -> Result<LangExpr<'model>, GeneratorError>
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.