use crate::buf_reader::RevBufReader;
use std::io::Result as IoResult;
use tokio::io::{AsyncRead, AsyncSeek};
#[derive(Debug)]
#[must_use = "streams do nothing unless polled"]
pub struct Lines<R> {
reader: RevBufReader<R>,
}
impl<R> Lines<R> {
pub(crate) fn new(reader: RevBufReader<R>) -> Self {
Self { reader }
}
}
impl<R: AsyncRead + AsyncSeek + Unpin> Lines<R> {
pub async fn next_line(&mut self) -> IoResult<Option<String>> {
self.reader.next_line().await
}
pub fn get_ref(&self) -> &RevBufReader<R> {
&self.reader
}
pub fn get_mut(&mut self) -> &mut RevBufReader<R> {
&mut self.reader
}
pub fn into_inner(self) -> RevBufReader<R> {
self.reader
}
}