[][src]Struct bio::io::fastq::Reader

pub struct Reader<R: Read> { /* fields omitted */ }

A FastQ reader.

Implementations

impl Reader<File>[src]

pub fn from_file<P: AsRef<Path>>(path: P) -> Result<Self>[src]

Read from a given file.

impl<R: Read> Reader<R>[src]

pub fn new(reader: R) -> Self[src]

Read from a given io::Read.

pub fn records(self) -> Records<R>

Important traits for Records<R>

impl<R: Read> Iterator for Records<R> type Item = Result<Record>;
[src]

Return an iterator over the records of this FastQ file.

Errors

This function will return an error if a record is incomplete or syntax is violated.

Example

use bio::io::fastq;

let fq: &'static [u8] = b"@id description\nACGT\n+\n!!!!\n";
let records = fastq::Reader::new(fq)
    .records()
    .map(|record| record.unwrap());
for record in records {
    assert!(record.check().is_ok())
}

Trait Implementations

impl<R: Debug + Read> Debug for Reader<R>[src]

impl<R> FastqRead for Reader<R> where
    R: Read
[src]

fn read(&mut self, record: &mut Record) -> Result<()>[src]

Read the next FastQ entry into the given Record. An empty record indicates that no more records can be read.

This method is useful when you want to read records as fast as possible because it allows the reuse of a Record allocation.

A more ergonomic approach to reading FastQ records is the records iterator.

FastQ files with wrapped sequence and quality strings are allowed.

Errors

This function will return an error if the record is incomplete, syntax is violated or any form of I/O error is encountered. Additionally, if the FastQ file has line-wrapped records, and the wrapping is not consistent between the sequence and quality string for a record, parsing will fail.

Example

use bio::io::fastq::Record;
use bio::io::fastq::{FastqRead, Reader};
const FASTQ_FILE: &'static [u8] = b"@id desc
AAAA
+
IIII
";
let mut reader = Reader::new(FASTQ_FILE);
let mut record = Record::new();

reader.read(&mut record).unwrap();

assert_eq!(record.id(), "id");
assert_eq!(record.desc().unwrap(), "desc");
assert_eq!(record.seq().to_vec(), b"AAAA");
assert_eq!(record.qual().to_vec(), b"IIII");

Auto Trait Implementations

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

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,