blob: 20befba2864427aea1081d1614daadc1b3446992 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
use crate::{ExecutionData, QuantumCircuit, Runtime, RuntimeBase};
pub struct BasicRT<'a> {
circuit: &'a QuantumCircuit,
}
impl<'a> RuntimeBase for BasicRT<'a> {
fn get_circuit(&self) -> &QuantumCircuit {
&self.circuit
}
}
impl<'a> Runtime<'a> for BasicRT<'a> {
fn new(circuit: &'a QuantumCircuit) -> BasicRT {
BasicRT { circuit }
}
fn execute(&self, repeat: usize) -> Vec<ExecutionData> {
let mut result: Vec<ExecutionData> = Vec::with_capacity(repeat);
for _ in 0..repeat {
let executation_data = ExecutionData::new(
self.circuit.get_quantum_register(),
self.circuit.get_classical_registers(),
);
for instruction in self.circuit.get_instructions() {
println!("{} on q{}", instruction.gate.0, instruction.target_bit);
}
result.push(executation_data);
}
result
}
}
|