ruda_runtime/runtime/
compiler.rs1use crate::runtime::{kernel::{CompiledKernel, KernelMetadata}, server::ExecutionMode};
2use ruda_core::ir::StorageType;
3pub use ruda_core::compiler::{CompilationError, Compiler};
4
5pub trait RudaTask<C: Compiler>: KernelMetadata + Send + Sync {
8 fn kernel_definition(&self) -> Option<ruda_core::kernel::KernelDefinition> {
11 None
12 }
13
14 fn compile(
16 &self,
17 compiler: &mut C,
18 compilation_options: &C::CompilationOptions,
19 mode: ExecutionMode,
20 address_type: StorageType,
21 ) -> Result<CompiledKernel<C>, CompilationError>;
22}