89 mutants tested: 59 caught, 30 unviable (type system rejects them),
0 missed. Added mutants dev-dep for #[mutants::skip] on legacy-msrv
dead code. Upgraded cargo-mutants to v27.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Added cargo-mutants with 88 mutants tested, 59 caught, 0 missed. Added
targeted tests for 254-byte block boundary encoding (interop-verified)
and exact-fit/too-small decode buffer sizing for the batch zero path.
111 tests total (was 106).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Decode rewritten with shrinking-slice pattern (split_first/split_at)
instead of index arithmetic. Decode zeros 14% faster, decode nonzero
flips from 5% behind corncobs to 2% ahead, decode mixed closes to tied.
Encode zeros fast path moved before split_at — now tied with cobs
(was 6% behind). Code size reduced to 821B (was 869B).
Replaced criterion with iai-callgrind for deterministic instruction-count
benchmarks via Valgrind. Zero run-to-run variance. Expanded to 162
benchmarks across 9 sizes.
ucobs now wins or ties 16 of 18 benchmarks vs corncobs and cobs.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>