pounce_studio_core/lib.rs
1#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used))]
2//! Pure-Rust analysis core for pounce-studio.
3//!
4//! Loads `pounce.solve-report/v1` JSON (see
5//! `crates/pounce-cli/src/solve_report.rs` for the writer) and parses
6//! `POUNCEIT v1` binary iter-dumps (see `tools/iter-dump/FORMAT.md`),
7//! then exposes derived series: convergence-stall detection, restoration
8//! window extraction, common-failure-mode diagnostics, side-by-side
9//! comparisons, and a Markdown summary renderer.
10//!
11//! The library is intentionally WASM-clean: it takes byte slices and
12//! returns owned data, never touching `std::fs`. The bundled
13//! `pounce-studio` binary in `src/bin/` is the file-I/O front-end.
14//!
15//! # Versioning
16//!
17//! The JSON schema is pinned to [`SOLVE_REPORT_SCHEMA`]; loading any
18//! other tag is rejected with [`Error::SchemaMismatch`]. The binary
19//! format is pinned to [`iter_dump::FORMAT_VERSION`]. Both can be
20//! widened additively (new optional fields) without bumping; breaking
21//! changes bump the major version and add a new branch here.
22
23pub mod analysis;
24pub mod glossary;
25pub mod iter_dump;
26pub mod markdown;
27pub mod preflight;
28pub mod report;
29
30pub use analysis::{
31 compare_runs, convergence_trace, diagnose, find_stalls, get_iterate, restoration_windows,
32 summarize, Finding, Severity, Stall, Summary,
33};
34pub use iter_dump::{IterDumpHeader, IterDumpRecord, IterDumpTrace};
35pub use report::{Error, IterRecord, SolveReport, SOLVE_REPORT_SCHEMA};