P1 correctness: - filter test files by default (--include-tests to opt in) - per-module diagrams show cross-module dependency arrows - qualified type names (Module::TypeName) fix false edges from duplicate names P2 output richness: - method parameter types and return types in class diagrams (Rust + Python) - Python pyproject.toml project analyzer (--level project for monorepos) P3 unique value: - boundary rules in archlens.toml ([rules] allow/deny, --strict enforcement) P4 nice to have: - dependency weight labels on module arrows (--no-weights to disable) - --watch mode with 500ms debounce - D2 renderer adapter (--format d2) - interactive self-contained HTML viewer (--format html) - git-aware incremental analysis (--since <ref>)
16 lines
395 B
Rust
16 lines
395 B
Rust
use crate::{CodeGraph, DomainError, ModuleName, RenderOutput};
|
|
|
|
pub trait DiagramRenderer {
|
|
fn render(&self, graph: &CodeGraph) -> Result<RenderOutput, DomainError>;
|
|
|
|
fn append_cross_module_deps(
|
|
&self,
|
|
content: &str,
|
|
module: &ModuleName,
|
|
deps: &[(ModuleName, usize)],
|
|
) -> String {
|
|
let _ = (module, deps);
|
|
content.to_string()
|
|
}
|
|
}
|