pub trait OptimizationStrategy:
Send
+ Sync
+ Debug {
// Required methods
fn strategy_name(&self) -> &str;
fn applicable_to(&self, backend_type: &HardwareType) -> bool;
fn optimize_operation(
&self,
operation: &dyn GateOp,
backend: &dyn QuantumHardwareBackend,
) -> Result<Box<dyn GateOp>, QuantRS2Error>;
fn optimize_circuit(
&self,
circuit: &[Box<dyn GateOp>],
backend: &dyn QuantumHardwareBackend,
) -> Result<Vec<Box<dyn GateOp>>, QuantRS2Error>;
}Required Methods§
fn strategy_name(&self) -> &str
fn applicable_to(&self, backend_type: &HardwareType) -> bool
fn optimize_operation( &self, operation: &dyn GateOp, backend: &dyn QuantumHardwareBackend, ) -> Result<Box<dyn GateOp>, QuantRS2Error>
fn optimize_circuit( &self, circuit: &[Box<dyn GateOp>], backend: &dyn QuantumHardwareBackend, ) -> Result<Vec<Box<dyn GateOp>>, QuantRS2Error>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".