From 2770097e25e7fb5090efe0f85340f0c638f9dd71 Mon Sep 17 00:00:00 2001 From: hachem Date: Sat, 28 Sep 2024 23:58:13 +0200 Subject: Prep for first CLI visualizer --- libpsi-visualizer/src/cli/horizontal_cli.rs | 26 ++++++++++++++++++++++++++ libpsi-visualizer/src/cli/mod.rs | 2 ++ 2 files changed, 28 insertions(+) create mode 100644 libpsi-visualizer/src/cli/horizontal_cli.rs create mode 100644 libpsi-visualizer/src/cli/mod.rs (limited to 'libpsi-visualizer/src/cli') diff --git a/libpsi-visualizer/src/cli/horizontal_cli.rs b/libpsi-visualizer/src/cli/horizontal_cli.rs new file mode 100644 index 0000000..0a5bf8e --- /dev/null +++ b/libpsi-visualizer/src/cli/horizontal_cli.rs @@ -0,0 +1,26 @@ +use crate::Visualizer; +use libpsi_core::QuantumCircuit; + +pub struct HorizontalCLIVisualizer<'a> { + circuit: &'a QuantumCircuit, +} + +impl<'a> Visualizer<'a> for HorizontalCLIVisualizer<'a> { + fn new(circuit: &'a QuantumCircuit) -> HorizontalCLIVisualizer<'a> { + HorizontalCLIVisualizer { circuit } + } + + // NOTE(Hachem): This is a temporary function + fn render(&self) { + for instruction in self.circuit.get_instructions() { + print!("Applied {} on ", &instruction.gate.0); + for bit_index in instruction.control_indices { + print!("q{} ", bit_index); + } + for bit_index in instruction.target_indices { + print!("q{} ", bit_index); + } + println!(); + } + } +} diff --git a/libpsi-visualizer/src/cli/mod.rs b/libpsi-visualizer/src/cli/mod.rs new file mode 100644 index 0000000..fe10249 --- /dev/null +++ b/libpsi-visualizer/src/cli/mod.rs @@ -0,0 +1,2 @@ +pub mod horizontal_cli; +pub use horizontal_cli::*; -- cgit v1.3