aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/runtimes/basic_rt.rs
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2024-09-26 21:40:04 +0200
committerhachem <im@hachem.wtf>2024-09-26 21:40:04 +0200
commit1070a7ee073471af8442826cec54e720be266c7c (patch)
tree8118c244731fa28409b70cedd69f8c6c057f4b33 /libpsi-core/src/runtimes/basic_rt.rs
parentd65b1c55782f6a9d89cd5bc7c7337397dcf4b85c (diff)
Runtime architecture start
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
+ }
+}