aboutsummaryrefslogtreecommitdiff
path: root/libpsi-visualizer/src/cli/horizontal_cli.rs
blob: 0a5bf8eae80ea316a4678f536fc3cf5927648761 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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!();
        }
    }
}