pub trait QuantumHardwareBackend:
Send
+ Sync
+ Debug {
Show 13 methods
// Required methods
fn backend_name(&self) -> &str;
fn hardware_type(&self) -> HardwareType;
fn capabilities(&self) -> HardwareCapabilities;
fn status(&self) -> HardwareStatus;
fn initialize(&self) -> Result<(), QuantRS2Error>;
fn calibrate(&self) -> Result<CalibrationResult, QuantRS2Error>;
fn execute_gate(
&self,
gate: &dyn GateOp,
context: &ExecutionContext,
) -> Result<ExecutionResult, QuantRS2Error>;
fn execute_circuit(
&self,
circuit: &[Box<dyn GateOp>],
context: &ExecutionContext,
) -> Result<CircuitResult, QuantRS2Error>;
fn measure_qubits(
&self,
qubits: &[QubitId],
basis: MeasurementBasis,
) -> Result<MeasurementResult, QuantRS2Error>;
fn get_noise_model(&self) -> NoiseModel;
fn estimate_fidelity(&self, operation: &dyn GateOp) -> f64;
fn estimate_execution_time(&self, operation: &dyn GateOp) -> Duration;
fn get_connectivity_graph(&self) -> ConnectivityGraph;
}Expand description
Trait for quantum hardware backends
Required Methods§
fn backend_name(&self) -> &str
fn hardware_type(&self) -> HardwareType
fn capabilities(&self) -> HardwareCapabilities
fn status(&self) -> HardwareStatus
fn initialize(&self) -> Result<(), QuantRS2Error>
fn calibrate(&self) -> Result<CalibrationResult, QuantRS2Error>
fn execute_gate( &self, gate: &dyn GateOp, context: &ExecutionContext, ) -> Result<ExecutionResult, QuantRS2Error>
fn execute_circuit( &self, circuit: &[Box<dyn GateOp>], context: &ExecutionContext, ) -> Result<CircuitResult, QuantRS2Error>
fn measure_qubits( &self, qubits: &[QubitId], basis: MeasurementBasis, ) -> Result<MeasurementResult, QuantRS2Error>
fn get_noise_model(&self) -> NoiseModel
fn estimate_fidelity(&self, operation: &dyn GateOp) -> f64
fn estimate_execution_time(&self, operation: &dyn GateOp) -> Duration
fn get_connectivity_graph(&self) -> ConnectivityGraph
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".