pdftract/crates/pdftract-core/src/font
jedarden a20647a4a6 feat(pdftract-njde): implement font fingerprint cache (Level 3)
Implement Level 3 of the encoding fallback chain. Hash the raw decoded
font program bytes (/FontFile, /FontFile2, /FontFile3) with SHA-256
and look up the 32-byte digest in a compile-time phf::Map.

- build.rs: generate_font_fingerprints() reads JSON, builds phf::Map
- src/font/fingerprint.rs: FontFingerprint, CachedFingerprint, lookup API
- build/font-fingerprints.json: empty database (placeholder)

Acceptance criteria:
- Empty JSON produces valid phf::Map
- Hash is stable across runs
- Lookup of unknown digest returns None
- Binary footprint < 500KB for 200-font DB (empty = negligible)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-23 21:27:24 -04:00
..
agl.rs feat(pdftract-28m6): implement AGL compile-time phf::Map 2026-05-23 18:44:47 -04:00
cmap.rs fix(pdftract-udz): fix CMap parser test assertion type mismatches 2026-05-23 16:28:08 -04:00
embedded.rs feat(pdftract-6ah): implement embedded font program loader 2026-05-23 14:28:29 -04:00
encoding.rs feat(pdftract-5nbp): implement /Differences overlay handler for font encodings 2026-05-23 18:09:46 -04:00
fingerprint.rs feat(pdftract-njde): implement font fingerprint cache (Level 3) 2026-05-23 21:27:24 -04:00
mod.rs feat(pdftract-njde): implement font fingerprint cache (Level 3) 2026-05-23 21:27:24 -04:00
std14.rs feat(pdftract-3dwu): implement named encoding tables 2026-05-23 18:00:05 -04:00
type0.rs feat(pdftract-5sh): CIDToGIDMap resolver for CIDFontType2 2026-05-23 15:23:27 -04:00