Skip to content

# Coverage: implementation/obilayeredmap.md

## Code couvert

- `obilayeredmap/src/mphf_layer.rs` — MphfLayer, LayerEvidence enum (Exact/Approx), find(), find_exact(), find_approx()
- `obilayeredmap/src/layer.rs` — Layer<D>, trait LayerData, modes () / PersistentCompactIntMatrix / PersistentBitMatrix, build(), build_evidence(), append_genome_column()
- `obilayeredmap/src/map.rs` — LayeredMap<D>, push_layer(), query()
- `obilayeredmap/src/evidence.rs` — Evidence, EvidenceWriter, encodage chunk_id:rank
- `obilayeredmap/src/fingerprint.rs` — FingerprintVec, FingerprintVecWriter, matches()
- `obilayeredmap/src/meta.rs` — LayerMeta, EvidenceKind (Exact / Approx { b, z })

## Notes

FORT RISQUE DE DÉRIVE. C'est le fichier le plus affecté par les changements récents : - EvidenceKind (Exact / Approx) est désormais un concept de premier plan — toute la sémantique de query en dépend - `LayerEvidence` enum interne à `MphfLayer` : dispatch transparent find() → find_exact() ou find_approx() - `fingerprint.rs` : module entièrement nouveau (FingerprintVec + FingerprintVecWriter) - `build_evidence()` / `build_exact_evidence()` / `build_approx_evidence()` sont nouveaux - `block_bits` dans les fonctions build : O(1) garanti avec le chemin chaud explicit pour block_bits=0 - Séparation open() (accès aléatoire, requiert .idx) vs open_sequential() (itération seule) Pratiquement toute cette page est à réécrire.