Struct rust_htslib::bam::buffer::RecordBuffer
source · pub struct RecordBuffer { /* private fields */ }
Expand description
A buffer for BAM records. This allows access regions in a sorted BAM file while iterating over it in a single pass. The buffer is implemented as a ringbuffer, such that extension or movement to the right has linear complexity. The buffer makes use of indexed random access. Hence, when fetching a region at the very end of the BAM, everything before is omitted without cost.
Implementations§
source§impl RecordBuffer
impl RecordBuffer
sourcepub fn new(bam: IndexedReader) -> Self
pub fn new(bam: IndexedReader) -> Self
Create a new RecordBuffer
.
sourcepub fn fetch(
&mut self,
chrom: &[u8],
start: u32,
end: u32
) -> Result<(usize, usize), Box<dyn Error>>
pub fn fetch(
&mut self,
chrom: &[u8],
start: u32,
end: u32
) -> Result<(usize, usize), Box<dyn Error>>
Fill buffer at the given interval. If the start coordinate is left of the previous start coordinate, this will use an additional BAM fetch IO operation. Coordinates are 0-based, and end is exclusive. Returns tuple with numbers of added and deleted records since the previous fetch.
sourcepub fn iter_mut(&mut self) -> IterMut<'_, Record>
pub fn iter_mut(&mut self) -> IterMut<'_, Record>
Iterate over mutable references to records that have been fetched with fetch
.