pub trait Compiler:
Sync
+ Send
+ 'static
+ Clone
+ Debug {
type Representation: Display;
type CompilationOptions: Send + Default + Debug;
// Required methods
fn compile(
&mut self,
kernel: KernelDefinition,
compilation_options: &Self::CompilationOptions,
mode: ExecutionMode,
addr_type: StorageType,
) -> Result<Self::Representation, CompilationError>;
fn elem_size(&self, elem: ElemType) -> usize;
fn extension(&self) -> &'static str;
}Expand description
Compiles the representation into its own representation that can be formatted into tokens.
Required Associated Types§
Sourcetype Representation: Display
type Representation: Display
The representation for the compiled code.
Sourcetype CompilationOptions: Send + Default + Debug
type CompilationOptions: Send + Default + Debug
The compilation options used to configure the compiler
Required Methods§
Sourcefn compile(
&mut self,
kernel: KernelDefinition,
compilation_options: &Self::CompilationOptions,
mode: ExecutionMode,
addr_type: StorageType,
) -> Result<Self::Representation, CompilationError>
fn compile( &mut self, kernel: KernelDefinition, compilation_options: &Self::CompilationOptions, mode: ExecutionMode, addr_type: StorageType, ) -> Result<Self::Representation, CompilationError>
Compiles the kernel definition into the compiler’s representation.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".