Implement the worker_run() function that processes a single FileWorkItem into MatchEvents via Phase 1 (lexer/object/xref) + Phase 3 (content streams) + Phase 4 span builder (skipping Phase 4.5 reading-order detection). Key changes: - Add ProgressEvent enum with FileStart, FileProgress, FileDone, FileSkipped variants - Create worker.rs with worker_run() function for single-pass PDF parsing - Implement extract_spans_from_page() using process_with_mode() for Phase 3 - Implement group_glyphs_into_spans() for span building without reading order - Add compute_fingerprint_for_grep() for document fingerprinting - Handle encrypted PDFs with diagnostic emission - Support --invert-match with synthetic event emission for zero-match spans - Fix encryption module compilation issues (rc4/aes_256 imports, RC4 implementation) - Add crossbeam-channel dependency for event channels The worker skips reading-order detection (Phase 4.5) since grep doesn't need it, cutting per-file CPU by ~30-40% on typical pages. Closes: pdftract-43sg2 |
||
|---|---|---|
| .. | ||
| doctor | ||
| grep | ||
| inspect | ||
| mcp | ||
| middleware | ||
| cache_cmd.rs | ||
| classify.rs | ||
| codegen.rs | ||
| lib.rs | ||
| main.rs | ||
| password.rs | ||
| serve.rs | ||
| verify_receipt.rs | ||