spdfdiff_types 0.1.8

Shared data model, diagnostics, provenance, and limits for semantic PDF diff tools.
Documentation

spdfdiff_types

Shared data model for semantic PDF diff and PDF comparison tools.

spdfdiff_types contains the stable, serializable types used across the semantic-pdf-diff workspace: geometry, provenance, diagnostics, resource limits, semantic change evidence, text hunks, layout-diff evidence, and the AI-review report IR. It is useful if you want to build custom PDF comparison pipelines or report consumers while reusing the same deterministic evidence model as the spdfdiff CLI.

What This Crate Provides

  • PdfDiffError, Diagnostic, and DiagnosticSeverity for explicit failure and degraded-mode reporting.
  • ResourceLimits and ParseConfig for parser and extraction safety.
  • Provenance, ObjectId, ByteRange, Rect, Point, and Matrix for preserving where evidence came from in a PDF.
  • DiffDocument, SemanticChange, SemanticNodeEvidence, LayoutDiff, and TextHunk for stable semantic PDF comparison output.
  • AiReviewReport and related review item/tag/confidence types for prompt-ready, evidence-preserving review JSON.

Pipeline Context

The workspace pipeline is:

pdf_core -> pdf_content -> pdf_text -> pdf_semantic -> diff_core -> diff_report

This crate sits underneath all of those crates. Downstream crates may re-export these types for convenience, but spdfdiff_types is the canonical owner of the public report-facing model.

Determinism And Compatibility

The types are designed for deterministic JSON output. Report-facing output must not depend on timestamps, random IDs, pointer addresses, absolute local paths, or unordered map iteration.

The current diff schema version is 0.1.0. The crate version may change without implying a schema change; use the schema_version field in DiffDocument and AI review reports when validating serialized reports.

When To Use It

Use spdfdiff_types when you need:

  • a stable Rust model for semantic PDF comparison reports;
  • explicit diagnostics for unsupported PDF features;
  • provenance-aware evidence for text, layout, and object-level changes;
  • resource-limit configuration shared with the parser stack.

If you only need a command-line PDF diff tool, use the spdfdiff_cli crate and the spdfdiff binary instead.