Pipecircuit visualization
pipecircuit-visualization derives reviewable architecture diagrams from a
crate's Rust source. It walks the crate's module tree, finds every explicit
StateMachine and StepInputOf implementation, follows imports, and expands
each outcome enum into its variants.
No diagram-specific step list is maintained:
use ;
let architecture = read?;
let players = architecture.state_machine?;
let snapshot = players.render;
The uncolored text tree is intended for expect tests and redirected output.
AnsiTextTree gives its role markers a terminal-safe lime treatment. The same
graph can be projected to MermaidFlowchart for Markdown and browser tooling
or GraphvizDot for Graphviz, SVG, and image generation.
The separately installable pipecircuit-cli package exposes the interactive
surface:
pipec diagram Players
It selects ANSI text only for an interactive terminal and honors NO_COLOR.
Generation fails when a referenced local type, module, state machine, input,
or outcome cannot be resolved. Procedural macros that generate
StepInputOf implementations are not source-visible on stable Rust and are
not currently supported; step implementations themselves must remain ordinary
Rust. This keeps incomplete diagrams from masquerading as complete ones.