lattice_host/diff/mod.rs
1//! Host façade over the diff subsystem, which now lives in the
2//! `lattice-diff` crate (moved out of `lattice-host` at BC.6/DX.6).
3//!
4//! The pure algorithm (`Hunk`, `HunkIndex`, `compute_diff`) and — since
5//! DX.6 — the host-attached *subsystem* (`DiffSubsystem` + `DiffSession`
6//! lifecycle, `diff-mode`, and the overlay/filler/fold/pane-group
7//! presentation providers) both live in `lattice-diff`. This module
8//! re-exports those crate modules under the historical `crate::diff::*`
9//! paths so existing host call sites (dispatch, boot, the TUI + GPUI
10//! renderers) are unchanged. DX.7 collapses the boot wiring into
11//! `lattice_diff::install(boot)` and begins retiring these shims.
12//!
13//! The one piece that stays host-side is [`resolver`]: the
14//! `BufferRegistry`-backed impls of the subsystem's
15//! `BufferTextProvider` / `DocumentBufferResolver` seams (coupling C6;
16//! they reference the host `BufferRegistry`, so they can't move). They
17//! are re-exported under [`subsystem`] so
18//! `crate::diff::subsystem::BufferRegistry{TextProvider,DocumentResolver}`
19//! still resolves everywhere.
20//!
21//! See `docs/dev/architecture/diff-extraction.md` for the cut and
22//! `docs/dev/operations/slice-plans/diff-extraction.md` for sequencing.
23
24pub use lattice_diff::{filler, fold, mode, overlay, pane_group};
25
26pub mod resolver;
27
28/// `crate::diff::subsystem` — the moved `lattice_diff::subsystem`
29/// surface PLUS the host-owned `BufferRegistry`-backed resolver impls,
30/// so every `crate::diff::subsystem::*` call site (including
31/// `BufferRegistryTextProvider` / `BufferRegistryDocumentResolver`)
32/// resolves unchanged after the DX.6 move.
33pub mod subsystem {
34 pub use crate::diff::resolver::{BufferRegistryDocumentResolver, BufferRegistryTextProvider};
35 pub use lattice_diff::subsystem::*;
36}