pdfcraft/crates/model
Brandon Thomas 1434db626a Never crash: deny the panic lints in crates that are already clean
annot, compare, content, cos, export, geom, model, ocr, preflight, print and redact have no
production `unwrap`/`expect`/`panic!`/`unreachable!`/`todo!`/`unimplemented!`. The attribute
keeps it that way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 13:12:21 -04:00
..
src Never crash: deny the panic lints in crates that are already clean 2026-10-04 13:12:21 -04:00
Cargo.toml M7.6: header & footer, watermark, background: new model (L2: page tree with inheritance, display geometry) and edit (L4) crates; marks drawn in display space on rotated pages, artifact-tagged and /PCMark-tagged (found without decompressing), original content wrapped in q/Q, page resources copied not shared; Acrobat tokens (page numbers, dates, Bates); Add/Update/Remove with exact restore of the original content; dialogs with page range options (subsets) and previews; 9 commands; tools doc_header_footer/doc_watermark/doc_background/doc_remove_marks (44 tools); dialogs outline their controls 2026-10-01 23:03:20 -04:00
README.md M7.6: header & footer, watermark, background: new model (L2: page tree with inheritance, display geometry) and edit (L4) crates; marks drawn in display space on rotated pages, artifact-tagged and /PCMark-tagged (found without decompressing), original content wrapped in q/Q, page resources copied not shared; Acrobat tokens (page numbers, dates, Bates); Add/Update/Remove with exact restore of the original content; dialogs with page range options (subsets) and previews; 9 commands; tools doc_header_footer/doc_watermark/doc_background/doc_remove_marks (44 tools); dialogs outline their controls 2026-10-01 23:03:20 -04:00

README.md

printcraft-model

Layer L2: typed views over the printcraft-cos object graph. It starts small, with what several L3/L4 crates need:

  • pages(doc): leaf pages in order, each with its inherited attributes (Resources, MediaBox, CropBox, Rotate, §7.7.3.4) resolved;
  • Page::crop, Page::rotation and Page::view_matrix: the displayed page's geometry, and the matrix from "display space" (origin at the bottom-left of the page as shown, after /Rotate) to user space, so content can be placed the way the reader sees the page.

organize, annot and forms still carry their own small walkers; they move here as the model grows (ADR-0004).