diff options
| author | hachem <im@hachem.wtf> | 2024-10-13 15:13:17 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2024-10-13 15:13:17 +0200 |
| commit | 7cc3c78a24b51a58d44e1baff20b86292662390e (patch) | |
| tree | ea7bcb1c6493287abc75f4df55458ed8f4abc1e5 /libpsi-visualizer/src | |
| parent | 00c4b7c44b1364381c65dccbb190d64b3ff4c1e8 (diff) | |
Mass refactor
Diffstat (limited to 'libpsi-visualizer/src')
| -rw-r--r-- | libpsi-visualizer/src/cli/horizontal_cli.rs | 17 | ||||
| -rw-r--r-- | libpsi-visualizer/src/lib.rs | 6 |
2 files changed, 15 insertions, 8 deletions
diff --git a/libpsi-visualizer/src/cli/horizontal_cli.rs b/libpsi-visualizer/src/cli/horizontal_cli.rs index 7c9a242..3f02c59 100644 --- a/libpsi-visualizer/src/cli/horizontal_cli.rs +++ b/libpsi-visualizer/src/cli/horizontal_cli.rs @@ -12,15 +12,23 @@ c1: ═══════════════════════════════════════════════■═════════▓ */ +use core::fmt; + use crate::{renderer::*, Visualizer}; use libpsi_core::QuantumCircuit; #[allow(unused)] pub struct HorizontalCLIVisualizer<'a> { - circuit: &'a QuantumCircuit, + circuit: &'a QuantumCircuit<'a>, renderer: CLIRenderer, } +impl<'a> fmt::Display for HorizontalCLIVisualizer<'a> { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + write!(f, "{}", self.renderer.to_string()) + } +} + impl<'a> Visualizer<'a> for HorizontalCLIVisualizer<'a> { fn new(circuit: &'a QuantumCircuit) -> HorizontalCLIVisualizer<'a> { let terminal_width = term_size::dimensions().unwrap().0; @@ -31,11 +39,6 @@ impl<'a> Visualizer<'a> for HorizontalCLIVisualizer<'a> { } fn render(&mut self) { - let quad = Quad::new(2, 2, 5, 5); - let point = (10usize, 0usize); - - self.renderer.draw_quad(quad, false); - self.renderer.connect(quad, point); - println!("{}", self.renderer.to_string()); + println!("{}", self); } } diff --git a/libpsi-visualizer/src/lib.rs b/libpsi-visualizer/src/lib.rs index f880436..11436c4 100644 --- a/libpsi-visualizer/src/lib.rs +++ b/libpsi-visualizer/src/lib.rs @@ -1,9 +1,13 @@ use libpsi_core::*; +use std::fmt; pub mod cli; pub use cli::*; -pub trait Visualizer<'a> { +pub trait Visualizer<'a> +where + Self: fmt::Display, +{ fn new(circuit: &'a QuantumCircuit) -> Self; fn render(&mut self); } |
