Skip to main content

docgen_diff/
lib.rs

1//! `docgen-diff` — the doc-diff timeline port.
2//!
3//! A pure-logic crate that owns the port of the original SvelteKit/TypeScript
4//! doc-diff timeline (`~/work/docgen/packages/docgen/src/lib/diff`). It keeps
5//! `libgit2` out of `docgen-core` (whose pipeline tests stay fast and
6//! dependency-light) and mirrors the original's split between *pure diff
7//! algorithms* (no git) and the *git-driven orchestrator*.
8
9pub mod block_diff;
10pub mod error;
11pub mod file_tree;
12pub mod git_parsing;
13pub mod git_refs;
14pub mod history;
15pub mod line_diff;
16pub mod payloads;
17pub mod report;
18pub mod timeline_groups;
19pub mod types;
20
21#[cfg(test)]
22mod testutil;
23
24pub use block_diff::{build_block_diff, split_markdown_blocks, strip_invisible_document_parts};
25pub use error::DiffError;
26pub use file_tree::build_file_tree;
27pub use git_parsing::{parse_name_status, parse_untracked_docs, NameStatusEntry};
28pub use git_refs::{base_ref_for_commit_parents, base_ref_for_parents, EMPTY_TREE_REF};
29pub use history::{
30    discover_repo, doc_revisions, global_doc_revisions, head_source, CommitMeta, GlobalFileChange,
31    GlobalRevision, RevisionContent,
32};
33pub use line_diff::{build_line_hunks, build_line_hunks_default};
34pub use payloads::{summarize_file, summarize_report, summarize_timeline_point};
35pub use report::{
36    build_doc_diff_report, build_doc_diff_report_with_blocks, build_global_doc_diff_report,
37};
38pub use timeline_groups::{bucket_label, format_date, group_timeline, ymd, TimelineBucket};
39pub use types::*;