aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/core/runtime.rs
diff options
context:
space:
mode:
Diffstat (limited to 'libpsi-core/src/core/runtime.rs')
-rw-r--r--libpsi-core/src/core/runtime.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/libpsi-core/src/core/runtime.rs b/libpsi-core/src/core/runtime.rs
new file mode 100644
index 0000000..f699d54
--- /dev/null
+++ b/libpsi-core/src/core/runtime.rs
@@ -0,0 +1,25 @@
+use super::{ClassicalRegister, QuantumBit, QuantumCircuit};
+
+#[allow(unused)]
+pub struct ExecutationData {
+ quantum_states: Vec<QuantumBit>,
+ classical_states: ClassicalRegister,
+}
+
+impl ExecutationData {
+ pub fn new(quantum_states: Vec<QuantumBit>, classical_states: ClassicalRegister) -> Self {
+ ExecutationData {
+ quantum_states,
+ classical_states,
+ }
+ }
+}
+
+pub trait RuntimeBase {
+ fn get_circuit(&self) -> &QuantumCircuit;
+}
+
+pub trait Runtime<T: RuntimeBase = Self> {
+ fn new(circuit: QuantumCircuit) -> Self;
+ fn execute(&self, repeat: usize) -> Vec<ExecutationData>;
+}