bench-stock/src/lib.rs
//! The gunnar-free half of the benchmark suite, as a library.
//!
//! Nothing is copied here. [`oid_index`] is `bench/src/oid_index.rs`, reached by
//! `#[path]`, because that file is already self-contained (`memmap2`, `std`, and
//! the tree — no gunnar identifier appears in its 684 lines) and duplicating it
//! would be a second implementation of the same thing.
//!
//! # Why it is worth having a manifest that can build it
//!
//! `bench/` cannot resolve at all since the eighteen gunnar crates moved under
//! `parked-record/crates/`, so `gunnar.oid_index` — "does an S+tree beat
//! git's `.idx` fanout+bsearch at oid -> pack offset" — became unbuildable
//! along with everything else, despite depending on none of the parked code.
//!
//! It is also the question the znippy-git store now asks itself:
//! `znippy-plugin-git/src/oid_index.rs` and `read_stack.rs` resolve an oid to an
//! extent through an stree of their own. The structures here are the baseline
//! that store has to beat, and they are usable today.
/// git's `.idx` reader, and the three candidate replacements for its
/// fanout+bsearch: [`oid_index::Fanout16`], [`oid_index::OidStree`],
/// [`oid_index::OidStree32`] and [`oid_index::KeyColumn`].
#[path = "../../bench/src/oid_index.rs"]
pub mod oid_index;