pub struct Reader<R> { /* private fields */ }
Expand description
An async GFF reader.
Implementations§
Source§impl<R> Reader<R>
impl<R> Reader<R>
Sourcepub fn get_ref(&self) -> &R
pub fn get_ref(&self) -> &R
Returns a reference to the underlying reader.
§Examples
use noodles_gff as gff;
use tokio::io;
let reader = gff::r#async::io::Reader::new(io::empty());
let _inner = reader.get_ref();
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_gff as gff;
use tokio::io;
let mut reader = gff::r#async::io::Reader::new(io::empty());
let _inner = reader.get_mut();
Sourcepub fn into_inner(self) -> R
pub fn into_inner(self) -> R
Unwraps and returns the underlying reader.
§Examples
use noodles_gff as gff;
use tokio::io;
let reader = gff::r#async::io::Reader::new(io::empty());
let _inner = reader.into_inner();
Source§impl<R> Reader<R>where
R: AsyncBufRead + Unpin,
impl<R> Reader<R>where
R: AsyncBufRead + Unpin,
Sourcepub fn new(inner: R) -> Self
pub fn new(inner: R) -> Self
Creates an async GFF reader.
§Examples
use noodles_gff as gff;
use tokio::io;
let reader = gff::r#async::io::Reader::new(io::empty());
Sourcepub async fn read_line(&mut self, line: &mut Line) -> Result<usize>
pub async fn read_line(&mut self, line: &mut Line) -> Result<usize>
Reads a lazy line.
§Examples
use noodles_gff as gff;
let data = b"##gff-version 3\n";
let mut reader = gff::r#async::io::Reader::new(&data[..]);
let mut line = gff::Line::default();
reader.read_line(&mut line).await?;
assert_eq!(line.kind(), gff::line::Kind::Directive);
assert_eq!(reader.read_line(&mut line).await?, 0);
Sourcepub fn lines(&mut self) -> impl Stream<Item = Result<Line>> + '_
pub fn lines(&mut self) -> impl Stream<Item = Result<Line>> + '_
Returns a stream over lines.
When using this, the caller is responsible to stop reading at either EOF or when the
FASTA
directive is read, whichever comes first.
§Examples
use futures::TryStreamExt;
use noodles_gff::{self as gff, directive_buf::key};
use tokio::io;
let mut reader = gff::r#async::io::Reader::new(io::empty());
let mut lines = reader.lines();
while let Some(line) = lines.try_next().await? {
if let Some(key::FASTA) = line.as_directive().map(|directive| directive.key()) {
break;
}
// ...
}
Sourcepub fn line_bufs(&mut self) -> impl Stream<Item = Result<LineBuf>> + '_
pub fn line_bufs(&mut self) -> impl Stream<Item = Result<LineBuf>> + '_
Returns a stream over line buffers.
§Examples
use futures::TryStreamExt;
use noodles_gff::{self as gff, LineBuf};
let data = b"##gff-version 3\n";
let mut reader = gff::r#async::io::Reader::new(&data[..]);
let mut lines = reader.line_bufs();
let line = lines.try_next().await?;
assert!(matches!(line, Some(LineBuf::Directive(_))));
assert!(lines.try_next().await?.is_none());
Sourcepub fn record_bufs(&mut self) -> impl Stream<Item = Result<RecordBuf>> + '_
pub fn record_bufs(&mut self) -> impl Stream<Item = Result<RecordBuf>> + '_
Returns a stream over records.
§Examples
use futures::TryStreamExt;
use noodles_gff as gff;
let data = b"##gff-version 3\n";
let mut reader = gff::r#async::io::Reader::new(&data[..]);
let mut records = reader.record_bufs();
assert!(records.try_next().await?.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