Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

TODO

StandardConfig refactoring (DONE)

All config structs now embed StandardConfig via #[serde(flatten)].

Cache cleanup

  • Remove old DB cache code: CacheEntry, OutputEntry, get_entry, has_cache_entry, get_cached_input_checksum, CACHE_TABLE. These are legacy from the pre-descriptor system. has_cache_entry (used in status display to distinguish “stale” vs “new”) should use the descriptor system instead. ~80 lines of dead code.

  • Remove cache_key() method from Product. Only used by has_cache_entry and remove_stale. Once has_cache_entry is migrated to descriptors, it may become fully unused.

  • Split db.redb: the configs table (CONFIGS_TABLE) is still in the same DB as the now-unused cache table. Give configs its own file (configs.redb), then delete db.redb entirely.

Cache correctness

  • Implement output_depends_on_input_name flag. Documented in docs/src/cache.md but not implemented. Needed for processors that embed the input filename in their output (e.g., a // Generated from foo.c header). Without it, renaming such a file would produce a cache hit with stale content.

  • Write a test for identical content processed by different processors. Verify two different processors processing the same file get separate cache entries (the processor name is in the descriptor key).

Code consolidation

  • Inline single-use names constants. 20+ constants in processors::names are used in exactly one place each (their processor’s new() call). Inline them as string literals.

  • Clean processor_configs.rs. Still 2,100+ lines. Check for:

    • ClangTidyConfig is nearly identical to StandardConfig — could it become a type alias?
    • Unused default_* helper functions left over from cppcheck removal.
    • Other config structs that are structurally identical to StandardConfig.

Documentation

  • Add docs/src/processors/creator.md — per-processor documentation for the Creator processor, like the other processor docs.

Housekeeping

  • Remove the tar lockfile entries. The crate was added and removed, but Cargo.lock may still reference it.

  • Commit everything. There is a large amount of uncommitted work spanning:

    • HasScanConfig trait elimination
    • SimpleGenerator (14 generators collapsed to data-driven)
    • Creator processor (new processor type with multi-dir caching)
    • Cache redesign (descriptor-based, content-addressed keys, no DB for cache data)
    • Checksum cache centralization (moved mtime logic to checksum.rs with own DB)
    • MassGenerator → Creator type rename
    • ProcessorType enum with strum iteration
    • processors types CLI command
    • --no-mtime-cache CLI flag
    • Mandatory supports_batch on all processors
    • Checker consolidation (5 checkers → SimpleChecker entries)
    • Removed unused dirs crate
    • New documentation: cache.md, checksum-cache.md, processor-types.md