Struct noodles_fastq::io::reader::Reader
source · pub struct Reader<R> { /* private fields */ }
Expand description
A FASTQ reader.
Implementations§
source§impl<R> Reader<R>where
R: BufRead,
impl<R> Reader<R>where
R: BufRead,
sourcepub fn new(inner: R) -> Self
pub fn new(inner: R) -> Self
Creates a FASTQ reader.
§Examples
use noodles_fastq as fastq;
let data = b"@r0\nATCG\n+\nNDLS\n";
let reader = fastq::io::Reader::new(&data[..]);
sourcepub fn get_ref(&self) -> &R
pub fn get_ref(&self) -> &R
Returns a reference to the underlying reader.
§Examples
use noodles_fastq as fastq;
let data = [];
let reader = fastq::io::Reader::new(&data[..]);
assert!(reader.get_ref().is_empty());
sourcepub fn get_mut(&mut self) -> &mut R
pub fn get_mut(&mut self) -> &mut R
Returns a mutable reference to the underlying reader.
§Examples
use noodles_fastq as fastq;
let data = [];
let mut reader = fastq::io::Reader::new(&data[..]);
assert!(reader.get_mut().is_empty());
sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Unwraps and returns the underlying reader.
§Examples
use noodles_fastq as fastq;
let data = [];
let reader = fastq::io::Reader::new(&data[..]);
assert!(reader.into_inner().is_empty());
sourcepub fn read_record(&mut self, record: &mut Record) -> Result<usize>
pub fn read_record(&mut self, record: &mut Record) -> Result<usize>
Reads a FASTQ record.
This reads from the underlying stream until four lines are read: the read name, the sequence, the plus line, and the quality scores. Each line omits the trailing newline.
The stream is expected to be at the start of a record.
If successful, the number of bytes read is returned. If the number of bytes read is 0, the stream reached EOF.
§Examples
use noodles_fastq as fastq;
let data = b"@r0\nATCG\n+\nNDLS\n";
let mut reader = fastq::io::Reader::new(&data[..]);
let mut record = fastq::Record::default();
reader.read_record(&mut record)?;
assert_eq!(record.name(), b"r0");
assert_eq!(record.sequence(), b"ATCG");
assert_eq!(record.quality_scores(), b"NDLS");
Ok::<(), io::Error>(())
sourcepub fn records(&mut self) -> Records<'_, R> ⓘ
pub fn records(&mut self) -> Records<'_, R> ⓘ
Returns an iterator over records starting from the current stream position.
The stream is expected to be at the start of a record.
§Examples
use noodles_fastq::{self as fastq, record::Definition};
let data = b"@r0\nATCG\n+\nNDLS\n";
let mut reader = fastq::io::Reader::new(&data[..]);
let mut records = reader.records();
assert_eq!(
records.next().transpose()?,
Some(fastq::Record::new(Definition::new("r0", ""), "ATCG", "NDLS")
));
assert!(records.next().is_none());
Auto Trait Implementations§
impl<R> Freeze for Reader<R>where
R: Freeze,
impl<R> RefUnwindSafe for Reader<R>where
R: RefUnwindSafe,
impl<R> Send for Reader<R>where
R: Send,
impl<R> Sync for Reader<R>where
R: Sync,
impl<R> Unpin for Reader<R>where
R: Unpin,
impl<R> UnwindSafe for Reader<R>where
R: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more