#![cfg(test)]
use super::bgzf::BgzfReader;
use super::record_store::RecordStore;
use std::io::{Read, Seek};
#[allow(
dead_code,
reason = "used by sibling test modules; rustc cfg gates may hide some call sites"
)]
pub(crate) fn decode_into_store(buf: &[u8]) -> RecordStore {
let mut store = RecordStore::new();
let idx = store
.push_raw(buf, &mut ())
.expect("push_raw returned an error")
.expect("record was filtered out");
assert_eq!(idx, 0, "fresh store must produce index 0");
store
}
#[allow(
dead_code,
reason = "used by sibling test modules; rustc cfg gates may hide some call sites"
)]
pub(crate) fn push_one_record_from_bgzf<R: Read + Seek>(
reader: &mut BgzfReader<R>,
store: &mut RecordStore,
) -> u32 {
let block_size: i32 = reader.read_i32().expect("read block_size");
assert!(block_size > 0, "block_size must be positive, got {block_size}");
let len = usize::try_from(block_size).expect("block_size fits in usize");
let mut rec_data = vec![0u8; len];
reader.read_exact_into(&mut rec_data).expect("read record bytes");
store
.push_raw(&rec_data, &mut ())
.expect("push_raw returned an error")
.expect("record was filtered out")
}