pub trait HardwareTarget:
Send
+ Sync
+ Debug {
// Required methods
fn target_name(&self) -> &str;
fn native_gates(&self) -> Vec<String>;
fn qubit_connectivity(&self) -> Vec<(usize, usize)>;
fn gate_fidelities(&self) -> HashMap<String, f64>;
fn gate_times(&self) -> HashMap<String, Duration>;
fn coherence_times(&self) -> Vec<Duration>;
fn compile_gate(
&self,
gate: &dyn GateOp,
context: &CompilationContext,
) -> Result<CompiledGate, QuantRS2Error>;
fn optimize_circuit(
&self,
circuit: &[CompiledGate],
) -> Result<Vec<CompiledGate>, QuantRS2Error>;
}
Expand description
Hardware target abstraction