aboutsummaryrefslogtreecommitdiff
path: root/libpsi-core/src/core/circuit.rs
diff options
context:
space:
mode:
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(),
+ }
+ }
+}