From 1fb7989e9405f9795a1d5b3953881b9bb8a137b4 Mon Sep 17 00:00:00 2001 From: hachem Date: Sat, 6 Dec 2025 22:33:56 +0100 Subject: [add]: custom gates + rework vertical renderer --- libpsi-visualizer/src/cli/horizontal_cli.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'libpsi-visualizer/src/cli/horizontal_cli.rs') diff --git a/libpsi-visualizer/src/cli/horizontal_cli.rs b/libpsi-visualizer/src/cli/horizontal_cli.rs index 067e23d..bac0c5e 100644 --- a/libpsi-visualizer/src/cli/horizontal_cli.rs +++ b/libpsi-visualizer/src/cli/horizontal_cli.rs @@ -246,6 +246,31 @@ impl<'a> fmt::Display for HorizontalRenderer<'a> { } gap_line.push_str(" ║ "); } + GateOp::Custom(gate, targets) => { + let name = &gate.name; + let label = format!("[{}]", name); + + for (i, line) in q_lines.iter_mut().enumerate() { + if targets.contains(&i) { + if i == targets[0] { + line.push_str(&format!("─{}─", label)); + } else { + line.push_str(&format!("─{}─", "─".repeat(label.len()))); + } + } else if i > min_q && i < max_q { + line.push_str(&format!( + "─{}─", + "│".to_string() + &"─".repeat(label.len() - 1) + )); + } else { + line.push_str(&format!("─{}─", "─".repeat(label.len()))); + } + } + for line in c_lines.iter_mut() { + line.push_str(&format!("═{}═", "═".repeat(label.len()))); + } + gap_line.push_str(&format!(" {} ", " ".repeat(label.len()))); + } } } -- cgit v1.3