pub trait OptimizationPass:
Send
+ Sync
+ Debug {
// Required methods
fn pass_name(&self) -> &str;
fn apply(
&self,
gates: &[NativeGate],
) -> Result<Vec<NativeGate>, QuantRS2Error>;
fn cost_estimate(&self, gates: &[NativeGate]) -> Duration;
}