Skip to main content

Module figure

Module figure 

Source
Expand description

Figure visualization backend.

This module renders circuits with a Rust-native SVG-first pipeline and optional PNG rasterization (via resvg).

§Core Features

  • SVG-first rendering: directly generates scalable vector output.
  • Optional PNG export: rasterizes SVG through resvg when bitmap output is needed.
  • Shared IR pipeline: consumes VisualCircuit built by the common visualization builder.
  • Style-map driven drawing: gate colors/fonts/line styles come from styles/default.json with optional overrides.

§Typical Workflow

  1. Build visualization IR from a circuit.
  2. Convert IR into SVG output.
  3. Save SVG directly or rasterize to PNG.

§Examples

use cqlib_core::circuit::{Circuit, Qubit};
use cqlib_core::visualization::{FigureDrawerOptions, circuit_to_figure};

let mut circuit = Circuit::new(2);
circuit.h(Qubit::new(0)).unwrap();
circuit.cx(Qubit::new(0), Qubit::new(1)).unwrap();

let script = circuit_to_figure(&circuit, &FigureDrawerOptions::default()).unwrap();
assert!(script.contains("<svg"));

Structs§

FigureDrawerOptions
Options for figure drawing.

Enums§

FigureDrawStyle
Figure rendering theme.

Functions§

circuit_to_figure
Generate SVG markup for a circuit.
draw_figure_from_visual
Generate SVG markup from pre-built visualization IR.
render_figure_to_file
Render a circuit directly to an output file (.svg or .png).