# 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, trait LayerData, modes () / PersistentCompactIntMatrix / PersistentBitMatrix, build(), build_evidence(), append_genome_column() - `obilayeredmap/src/map.rs` — LayeredMap, 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.