aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/runtimes
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2024-10-13 15:13:17 +0200
committerhachem <im@hachem.wtf>2024-10-13 15:13:17 +0200
commit7cc3c78a24b51a58d44e1baff20b86292662390e (patch)
treeea7bcb1c6493287abc75f4df55458ed8f4abc1e5 /libpsi-core/src/runtimes
parent00c4b7c44b1364381c65dccbb190d64b3ff4c1e8 (diff)
Mass refactor
Diffstat (limited to 'libpsi-core/src/runtimes')
-rw-r--r--libpsi-core/src/runtimes/basic_rt.rs31
1 files changed, 18 insertions, 13 deletions
diff --git a/libpsi-core/src/runtimes/basic_rt.rs b/libpsi-core/src/runtimes/basic_rt.rs
index 20befba..b8c412f 100644
--- a/libpsi-core/src/runtimes/basic_rt.rs
+++ b/libpsi-core/src/runtimes/basic_rt.rs
@@ -1,34 +1,39 @@
-use crate::{ExecutionData, QuantumCircuit, Runtime, RuntimeBase};
+use crate::{Instruction, QuantumCircuit, QuantumState, Runtime, RuntimeData};
pub struct BasicRT<'a> {
- circuit: &'a QuantumCircuit,
-}
-
-impl<'a> RuntimeBase for BasicRT<'a> {
- fn get_circuit(&self) -> &QuantumCircuit {
- &self.circuit
- }
+ circuit: &'a QuantumCircuit<'a>,
}
impl<'a> Runtime<'a> for BasicRT<'a> {
- fn new(circuit: &'a QuantumCircuit) -> BasicRT {
+ fn new(circuit: &'a QuantumCircuit) -> BasicRT<'a> {
BasicRT { circuit }
}
- fn execute(&self, repeat: usize) -> Vec<ExecutionData> {
- let mut result: Vec<ExecutionData> = Vec::with_capacity(repeat);
+ fn execute(&self, repeat: usize) -> Vec<RuntimeData> {
+ let mut result: Vec<RuntimeData> = Vec::with_capacity(repeat);
for _ in 0..repeat {
- let executation_data = ExecutionData::new(
+ let executation_data = RuntimeData::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);
+ match instruction {
+ Instruction::ApplyGate(_gate, _control_bits, _target) => print!(""),
+ Instruction::Measure(_bit) => print!(""),
+ }
}
result.push(executation_data);
}
result
}
+
+ fn get_state(&self) -> QuantumState {
+ todo!()
+ }
+
+ fn get_circuit(&self) -> &QuantumCircuit {
+ &self.circuit
+ }
}