From 1c2a7c29b6779ce81b927878ab458e86836fb57f Mon Sep 17 00:00:00 2001 From: Raynel Sanchez <87539502+raynelfss@users.noreply.github.com> Date: Thu, 11 Jul 2024 19:21:38 -0400 Subject: [PATCH] Add: `iter()` method to `CircuitData` - Make `PackedInstruction` public. --- crates/circuit/src/circuit_data.rs | 7 ++++++- crates/circuit/src/circuit_instruction.rs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/crates/circuit/src/circuit_data.rs b/crates/circuit/src/circuit_data.rs index 501645415874..f9edb608fbb2 100644 --- a/crates/circuit/src/circuit_data.rs +++ b/crates/circuit/src/circuit_data.rs @@ -1167,4 +1167,9 @@ impl CircuitData { py_op: RefCell::new(inst.py_op.clone()), }) } -} + + /// Rust native method, returns an iterator over all the instructions present in the circuit. + pub fn iter<'a>(&'a self) -> impl Iterator + 'a { + self.data.iter() + } +} \ No newline at end of file diff --git a/crates/circuit/src/circuit_instruction.rs b/crates/circuit/src/circuit_instruction.rs index 501105f9f17e..ecb7a1623a20 100644 --- a/crates/circuit/src/circuit_instruction.rs +++ b/crates/circuit/src/circuit_instruction.rs @@ -44,7 +44,7 @@ pub struct ExtraInstructionAttributes { /// Private type used to store instructions with interned arg lists. #[derive(Clone, Debug)] -pub(crate) struct PackedInstruction { +pub struct PackedInstruction { /// The Python-side operation instance. pub op: OperationType, /// The index under which the interner has stored `qubits`.