facet_diff_core/layout/
mod.rs

1//! Layout types and algorithms for diff rendering.
2//!
3//! This module provides the infrastructure for formatting diffs with proper
4//! alignment, coloring, and collapsing of unchanged runs.
5//!
6//! # Architecture
7//!
8//! 1. **Format phase**: Walk the Diff, format all scalar values into [`FormatArena`]
9//! 2. **Layout phase**: Build [`LayoutNode`] tree, group attrs, calculate alignment
10//! 3. **Render phase**: Walk tree, emit to writer with prefixes/colors/padding
11
12mod arena;
13mod attrs;
14mod backend;
15mod build;
16mod flavor;
17mod node;
18mod render;
19
20pub use arena::{FormatArena, Span};
21pub use attrs::{Attr, AttrStatus, ChangedGroup, FormattedValue, ValueType, group_changed_attrs};
22pub use backend::{AnsiBackend, ColorBackend, PlainBackend, SemanticColor};
23pub use build::{BuildOptions, build_layout};
24pub use flavor::{DiffFlavor, FieldPresentation, JsonFlavor, RustFlavor, XmlFlavor};
25pub use node::{ElementChange, Layout, LayoutNode};
26pub use render::{RenderOptions, render, render_to_string};