mod builder;
pub use self::builder::Builder;
use std::io::{self, Read};
use noodles_fasta as fasta;
use noodles_sam::{self as sam, alignment::Record, AlignmentReader};
pub struct Reader<R> {
inner: Box<dyn AlignmentReader<R>>,
reference_sequence_repository: fasta::Repository,
}
impl<R> Reader<R>
where
R: Read,
{
pub fn read_header(&mut self) -> io::Result<sam::Header> {
self.inner.read_alignment_header()
}
pub fn records<'a>(
&'a mut self,
header: &'a sam::Header,
) -> impl Iterator<Item = io::Result<Record>> + 'a {
self.inner
.alignment_records(&self.reference_sequence_repository, header)
}
}