aboutsummaryrefslogtreecommitdiff
path: root/libpsi-visualizer/src
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2024-10-13 15:13:17 +0200
committerhachem <im@hachem.wtf>2024-10-13 15:13:17 +0200
commit7cc3c78a24b51a58d44e1baff20b86292662390e (patch)
treeea7bcb1c6493287abc75f4df55458ed8f4abc1e5 /libpsi-visualizer/src
parent00c4b7c44b1364381c65dccbb190d64b3ff4c1e8 (diff)
Mass refactor
Diffstat (limited to 'libpsi-visualizer/src')
-rw-r--r--libpsi-visualizer/src/cli/horizontal_cli.rs17
-rw-r--r--libpsi-visualizer/src/lib.rs6
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);
}