aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/core/circuit.rs
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2024-09-24 21:44:48 +0200
committerhachem <im@hachem.wtf>2024-09-24 21:44:48 +0200
commitd65b1c55782f6a9d89cd5bc7c7337397dcf4b85c (patch)
treea27167d79d18e4a9681dbdc75d5704c4d6fa9fd7 /libpsi-core/src/core/circuit.rs
parentc07ab7911bd50d0060841690a863333a9a3f226d (diff)
Prepare for quantum circuit
Diffstat (limited to 'libpsi-core/src/core/circuit.rs')
-rw-r--r--libpsi-core/src/core/circuit.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/libpsi-core/src/core/circuit.rs b/libpsi-core/src/core/circuit.rs
new file mode 100644
index 0000000..65e359a
--- /dev/null
+++ b/libpsi-core/src/core/circuit.rs
@@ -0,0 +1,25 @@
+use super::{ClassicalRegister, QuantumBit, QuantumGate};
+
+#[allow(dead_code)]
+struct QuantumCircuitInstruction {
+ target_indices: Vec<i32>,
+ control_indices: Vec<i32>,
+ gate: QuantumGate,
+}
+
+#[allow(dead_code)]
+pub struct QuantumCircuit {
+ quantum_bits: Vec<QuantumBit>,
+ classical_register: ClassicalRegister,
+ instructions: Vec<QuantumCircuitInstruction>,
+}
+
+impl QuantumCircuit {
+ pub fn new(quantum_bit_count: usize, classical_bit_count: usize) -> QuantumCircuit {
+ QuantumCircuit {
+ quantum_bits: Vec::with_capacity(quantum_bit_count),
+ classical_register: ClassicalRegister::new(classical_bit_count),
+ instructions: Vec::new(),
+ }
+ }
+}