gwseq-io 0.2.0

Rust library for processing bigWig, bigBed, BAM and HiC files
Documentation
//! BAM.
//!
//! Format reference: `docs/sam_format.md`.
//!
//! `bgzf.rs` is a separate module from `reader.rs` on purpose. Block and
//! virtual-offset handling is a distinct format concern — a 48-bit block
//! offset with a 16-bit offset inside it, a four-block decompressed cache, an
//! EOF marker block — worth its own file and its own unit tests. An off-by-one
//! there reads plausible garbage, which is the worst kind of bug to find
//! late.

// `pub(crate)` on the parser modules rather than private: `crate::fuzz`
// runs every one of them over hostile bytes, and it is a sibling of these
// rather than a descendant. Nothing here is re-exported, so the public API
// is what `pub use` below says it is.
pub(crate) mod bai;
pub(crate) mod bgzf;
pub(crate) mod header;
mod reader;
pub(crate) mod record;

pub use bai::{BamIndex, RefIndex, RefMetadata};
pub use bgzf::{Chunk, VirtualOffset, BGZF_EOF_BLOCK};
pub use header::{HeaderField, HeaderLine, SamHeader};
pub use reader::{
    window_locs, BamReader, Cursor, Cursors, EntriesRequest, LocusEntries, LocusWalk, WindowEntries,
};
pub use record::{BamRecord, EntryFilter, RecordFilter, TagValue};