pub trait CircuitExecutor: QuantumDevice {
// Required methods
fn execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<CircuitResult>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn execute_circuits<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuits: Vec<&'life1 Circuit<N>>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<Vec<CircuitResult>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn can_execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn estimated_queue_time<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<Duration>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
}Expand description
Trait for devices that can execute quantum circuits
Required Methods§
Sourcefn execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<CircuitResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<CircuitResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute a quantum circuit on the device
Sourcefn execute_circuits<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuits: Vec<&'life1 Circuit<N>>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<Vec<CircuitResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn execute_circuits<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuits: Vec<&'life1 Circuit<N>>,
shots: usize,
) -> Pin<Box<dyn Future<Output = DeviceResult<Vec<CircuitResult>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Execute multiple circuits in parallel
Sourcefn can_execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn can_execute_circuit<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<bool>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Check if a circuit can be executed on the device
Sourcefn estimated_queue_time<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<Duration>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn estimated_queue_time<'life0, 'life1, 'async_trait, const N: usize>(
&'life0 self,
circuit: &'life1 Circuit<N>,
) -> Pin<Box<dyn Future<Output = DeviceResult<Duration>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Get estimated queue time for a circuit execution
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.