pub mod inputs; pub mod interpreter; #[cfg(feature = "valued_jit")] pub mod vir_interpreter; pub use inputs::BackendInput; pub use interpreter::InterpreterBackend; #[cfg(feature = "valued_jit")] pub use vir_interpreter::VirInterpreterBackend; use crate::frontend::ast; #[derive(Debug, Clone, serde::Serialize)] pub struct BackendOutput { pub rule_name: Option, pub connector_selection: O, } pub trait EuclidBackend: Sized { type Error: serde::Serialize; fn with_program(program: ast::Program) -> Result; fn execute(&self, input: BackendInput) -> Result, Self::Error>; }