aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/runtimes/basic_rt.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libpsi-core/src/runtimes/basic_rt.rs')
-rw-r--r--libpsi-core/src/runtimes/basic_rt.rs26
1 files changed, 26 insertions, 0 deletions
diff --git a/libpsi-core/src/runtimes/basic_rt.rs b/libpsi-core/src/runtimes/basic_rt.rs
new file mode 100644
index 0000000..78d6122
--- /dev/null
+++ b/libpsi-core/src/runtimes/basic_rt.rs
@@ -0,0 +1,26 @@
+use crate::{ClassicalRegister, ExecutationData, QuantumCircuit, Runtime, RuntimeBase};
+
+pub struct BasicRT {
+ circuit: QuantumCircuit,
+}
+
+impl RuntimeBase for BasicRT {
+ fn get_circuit(&self) -> &QuantumCircuit {
+ &self.circuit
+ }
+}
+
+impl Runtime for BasicRT {
+ fn new(circuit: QuantumCircuit) -> BasicRT {
+ BasicRT { circuit }
+ }
+
+ fn execute(&self, repeat: usize) -> Vec<ExecutationData> {
+ let mut result: Vec<ExecutationData> = Vec::with_capacity(repeat);
+ for _ in 0..repeat {
+ let executation_data = ExecutationData::new(Vec::new(), ClassicalRegister::new(1));
+ result.push(executation_data);
+ }
+ result
+ }
+}