diff options
| author | hachem <im@hachem.wtf> | 2024-09-26 21:40:04 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2024-09-26 21:40:04 +0200 |
| commit | 1070a7ee073471af8442826cec54e720be266c7c (patch) | |
| tree | 8118c244731fa28409b70cedd69f8c6c057f4b33 /libpsi-core/src/runtimes | |
| parent | d65b1c55782f6a9d89cd5bc7c7337397dcf4b85c (diff) | |
Runtime architecture start
Diffstat (limited to 'libpsi-core/src/runtimes')
| -rw-r--r-- | libpsi-core/src/runtimes/basic_rt.rs | 26 | ||||
| -rw-r--r-- | libpsi-core/src/runtimes/mod.rs | 3 |
2 files changed, 29 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 + } +} diff --git a/libpsi-core/src/runtimes/mod.rs b/libpsi-core/src/runtimes/mod.rs new file mode 100644 index 0000000..4c2030c --- /dev/null +++ b/libpsi-core/src/runtimes/mod.rs @@ -0,0 +1,3 @@ +pub mod basic_rt; + +pub use basic_rt::*; |
