Struct futures::io::BufReader [−][src]
pub struct BufReader<R> { /* fields omitted */ }
Expand description
The BufReader
struct adds buffering to any reader.
It can be excessively inefficient to work directly with a AsyncRead
instance. A BufReader
performs large, infrequent reads on the underlying
AsyncRead
and maintains an in-memory buffer of the results.
BufReader
can improve the speed of programs that make small and
repeated read calls to the same file or network socket. It does not
help when reading very large amounts at once, or reading just one or a few
times. It also provides no advantage when reading from a source that is
already in memory, like a Vec<u8>
.
When the BufReader
is dropped, the contents of its buffer will be
discarded. Creating multiple instances of a BufReader
on the same
stream can cause data loss.
Implementations
impl<R> BufReader<R> where
R: AsyncRead,
[src]
impl<R> BufReader<R> where
R: AsyncRead,
[src]pub fn new(inner: R) -> BufReader<R>
[src]
pub fn new(inner: R) -> BufReader<R>
[src]Creates a new BufReader
with a default buffer capacity. The default is currently 8 KB,
but may change in the future.
pub fn with_capacity(capacity: usize, inner: R) -> BufReader<R>
[src]
pub fn with_capacity(capacity: usize, inner: R) -> BufReader<R>
[src]Creates a new BufReader
with the specified buffer capacity.
pub fn get_ref(&self) -> &R
[src]
pub fn get_ref(&self) -> &R
[src]Acquires a reference to the underlying sink or stream that this combinator is pulling from.
pub fn get_mut(&mut self) -> &mut R
[src]
pub fn get_mut(&mut self) -> &mut R
[src]Acquires a mutable reference to the underlying sink or stream that this combinator is pulling from.
Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.
pub fn get_pin_mut(self: Pin<&mut BufReader<R>>) -> Pin<&mut R>ⓘ
[src]
pub fn get_pin_mut(self: Pin<&mut BufReader<R>>) -> Pin<&mut R>ⓘ
[src]Acquires a pinned mutable reference to the underlying sink or stream that this combinator is pulling from.
Note that care must be taken to avoid tampering with the state of the sink or stream which may otherwise confuse this combinator.
pub fn into_inner(self) -> R
[src]
pub fn into_inner(self) -> R
[src]Consumes this combinator, returning the underlying sink or stream.
Note that this may discard intermediate state of this combinator, so care should be taken to avoid losing resources when this is called.
Trait Implementations
impl<R> AsyncBufRead for BufReader<R> where
R: AsyncRead,
[src]
impl<R> AsyncBufRead for BufReader<R> where
R: AsyncRead,
[src]impl<R> AsyncRead for BufReader<R> where
R: AsyncRead,
[src]
impl<R> AsyncRead for BufReader<R> where
R: AsyncRead,
[src]pub fn poll_read(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]
pub fn poll_read(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
buf: &mut [u8]
) -> Poll<Result<usize, Error>>
[src]Attempt to read from the AsyncRead
into buf
. Read more
pub fn poll_read_vectored(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
[src]
pub fn poll_read_vectored(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
bufs: &mut [IoSliceMut<'_>]
) -> Poll<Result<usize, Error>>
[src]Attempt to read from the AsyncRead
into bufs
using vectored
IO operations. Read more
pub unsafe fn initializer(&self) -> Initializer
[src]
pub unsafe fn initializer(&self) -> Initializer
[src]Determines if this AsyncRead
er can work with buffers of
uninitialized memory. Read more
impl<R> AsyncSeek for BufReader<R> where
R: AsyncRead + AsyncSeek,
[src]
impl<R> AsyncSeek for BufReader<R> where
R: AsyncRead + AsyncSeek,
[src]pub fn poll_seek(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<u64, Error>>
[src]
pub fn poll_seek(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
pos: SeekFrom
) -> Poll<Result<u64, Error>>
[src]Seek to an offset, in bytes, in the underlying reader.
The position used for seeking with SeekFrom::Current(_)
is the
position the underlying reader would be at if the BufReader
had no
internal buffer.
Seeking always discards the internal buffer, even if the seek position
would otherwise fall within it. This guarantees that calling
.into_inner()
immediately after a seek yields the underlying reader
at the same position.
See AsyncSeek
for more details.
Note: In the edge case where you’re seeking with SeekFrom::Current(n)
where n
minus the internal buffer length overflows an i64
, two
seeks will be performed instead of one. If the second seek returns
Err
, the underlying reader will be left at the same position it would
have if you called seek
with SeekFrom::Current(0)
.
impl<R> AsyncWrite for BufReader<R> where
R: AsyncWrite,
[src]
impl<R> AsyncWrite for BufReader<R> where
R: AsyncWrite,
[src]pub fn poll_write(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
[src]
pub fn poll_write(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
buf: &[u8]
) -> Poll<Result<usize, Error>>
[src]Attempt to write bytes from buf
into the object. Read more
pub fn poll_write_vectored(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
[src]
pub fn poll_write_vectored(
self: Pin<&mut BufReader<R>>,
cx: &mut Context<'_>,
bufs: &[IoSlice<'_>]
) -> Poll<Result<usize, Error>>
[src]Attempt to write bytes from bufs
into the object using vectored
IO operations. Read more
impl<'__pin, R> Unpin for BufReader<R> where
__Origin<'__pin, R>: Unpin,
[src]
__Origin<'__pin, R>: Unpin,
Auto Trait Implementations
impl<R> RefUnwindSafe for BufReader<R> where
R: RefUnwindSafe,
R: RefUnwindSafe,
impl<R> Send for BufReader<R> where
R: Send,
R: Send,
impl<R> Sync for BufReader<R> where
R: Sync,
R: Sync,
impl<R> UnwindSafe for BufReader<R> where
R: UnwindSafe,
R: UnwindSafe,
Blanket Implementations
impl<R> AsyncBufReadExt for R where
R: AsyncBufRead + ?Sized,
[src]
impl<R> AsyncBufReadExt for R where
R: AsyncBufRead + ?Sized,
[src]fn fill_buf(&mut self) -> FillBuf<'_, Self>ⓘ where
Self: Unpin,
[src]
fn fill_buf(&mut self) -> FillBuf<'_, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will wait for a non-empty buffer to be available from this I/O object or EOF to be reached. Read more
fn consume_unpin(&mut self, amt: usize) where
Self: Unpin,
[src]
fn consume_unpin(&mut self, amt: usize) where
Self: Unpin,
[src]A convenience for calling AsyncBufRead::consume
on Unpin
IO types. Read more
fn read_until(
&'a mut self,
byte: u8,
buf: &'a mut Vec<u8, Global>
) -> ReadUntil<'a, Self>ⓘ where
Self: Unpin,
[src]
fn read_until(
&'a mut self,
byte: u8,
buf: &'a mut Vec<u8, Global>
) -> ReadUntil<'a, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will read all the bytes associated with this I/O
object into buf
until the delimiter byte
or EOF is reached.
This method is the async equivalent to BufRead::read_until
. Read more
fn read_line(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>ⓘ where
Self: Unpin,
[src]
fn read_line(&'a mut self, buf: &'a mut String) -> ReadLine<'a, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will read all the bytes associated with this I/O
object into buf
until a newline (the 0xA byte) or EOF is reached,
This method is the async equivalent to BufRead::read_line
. Read more
fn lines(self) -> Lines<Self>
[src]
fn lines(self) -> Lines<Self>
[src]Returns a stream over the lines of this reader.
This method is the async equivalent to BufRead::lines
. Read more
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
[src]
impl<R> AsyncReadExt for R where
R: AsyncRead + ?Sized,
[src]fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
[src]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: AsyncRead,
[src]Creates an adaptor which will chain this stream with another. Read more
fn read(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>ⓘ where
Self: Unpin,
[src]
fn read(&'a mut self, buf: &'a mut [u8]) -> Read<'a, Self>ⓘ where
Self: Unpin,
[src]Tries to read some bytes directly into the given buf
in asynchronous
manner, returning a future type. Read more
fn read_vectored(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>
impl<'_, R> Future for ReadVectored<'_, R> where
R: AsyncRead + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
fn read_vectored(
&'a mut self,
bufs: &'a mut [IoSliceMut<'a>]
) -> ReadVectored<'a, Self>ⓘNotable traits for ReadVectored<'_, R>
impl<'_, R> Future for ReadVectored<'_, R> where
R: AsyncRead + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]Creates a future which will read from the AsyncRead
into bufs
using vectored
IO operations. Read more
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>ⓘ where
Self: Unpin,
[src]
fn read_exact(&'a mut self, buf: &'a mut [u8]) -> ReadExact<'a, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will read exactly enough bytes to fill buf
,
returning an error if end of file (EOF) is hit sooner. Read more
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self>ⓘ where
Self: Unpin,
[src]
fn read_to_end(
&'a mut self,
buf: &'a mut Vec<u8, Global>
) -> ReadToEnd<'a, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will read all the bytes from this AsyncRead
. Read more
fn read_to_string(&'a mut self, buf: &'a mut String) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>
impl<'_, A> Future for ReadToString<'_, A> where
A: AsyncRead + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
fn read_to_string(&'a mut self, buf: &'a mut String) -> ReadToString<'a, Self>ⓘNotable traits for ReadToString<'_, A>
impl<'_, A> Future for ReadToString<'_, A> where
A: AsyncRead + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]Creates a future which will read all the bytes from this AsyncRead
. Read more
fn split(self) -> (ReadHalf<Self>, WriteHalf<Self>) where
Self: AsyncWrite,
[src]
fn split(self) -> (ReadHalf<Self>, WriteHalf<Self>) where
Self: AsyncWrite,
[src]Helper method for splitting this read/write object into two halves. Read more
fn take(self, limit: u64) -> Take<Self>
[src]
fn take(self, limit: u64) -> Take<Self>
[src]Creates an AsyncRead adapter which will read at most limit
bytes
from the underlying reader. Read more
fn compat(self) -> Compat<Self>ⓘ where
Self: Unpin,
[src]
fn compat(self) -> Compat<Self>ⓘ where
Self: Unpin,
[src]Wraps an AsyncRead
in a compatibility wrapper that allows it to be
used as a futures 0.1 / tokio-io 0.1 AsyncRead
. If the wrapped type
implements AsyncWrite
as well, the result will also implement the
futures 0.1 / tokio 0.1 AsyncWrite
trait. Read more
impl<S> AsyncSeekExt for S where
S: AsyncSeek + ?Sized,
[src]
impl<S> AsyncSeekExt for S where
S: AsyncSeek + ?Sized,
[src]fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>ⓘ where
Self: Unpin,
[src]
fn seek(&mut self, pos: SeekFrom) -> Seek<'_, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will seek an IO object, and then yield the new position in the object and the object itself. Read more
fn stream_position(&mut self) -> Seek<'_, Self>ⓘ where
Self: Unpin,
[src]
fn stream_position(&mut self) -> Seek<'_, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will return the current seek position from the start of the stream. Read more
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
[src]
impl<W> AsyncWriteExt for W where
W: AsyncWrite + ?Sized,
[src]fn flush(&mut self) -> Flush<'_, Self>ⓘ where
Self: Unpin,
[src]
fn flush(&mut self) -> Flush<'_, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will entirely flush this AsyncWrite
. Read more
fn close(&mut self) -> Close<'_, Self>ⓘ where
Self: Unpin,
[src]
fn close(&mut self) -> Close<'_, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will entirely close this AsyncWrite
.
fn write(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>ⓘ where
Self: Unpin,
[src]
fn write(&'a mut self, buf: &'a [u8]) -> Write<'a, Self>ⓘ where
Self: Unpin,
[src]Creates a future which will write bytes from buf
into the object. Read more
fn write_vectored(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>
impl<'_, W> Future for WriteVectored<'_, W> where
W: AsyncWrite + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]
fn write_vectored(
&'a mut self,
bufs: &'a [IoSlice<'a>]
) -> WriteVectored<'a, Self>ⓘNotable traits for WriteVectored<'_, W>
impl<'_, W> Future for WriteVectored<'_, W> where
W: AsyncWrite + Unpin + ?Sized, type Output = Result<usize, Error>;
where
Self: Unpin,
[src]Creates a future which will write bytes from bufs
into the object using vectored
IO operations. Read more
fn write_all(&'a mut self, buf: &'a [u8]) -> WriteAll<'a, Self>ⓘ where
Self: Unpin,
[src]
fn write_all(&'a mut self, buf: &'a [u8]) -> WriteAll<'a, Self>ⓘ where
Self: Unpin,
[src]Write data into this object. Read more
fn write_all_vectored(
&'a mut self,
bufs: &'a mut [IoSlice<'a>]
) -> WriteAllVectored<'a, Self>ⓘNotable traits for WriteAllVectored<'_, W>
impl<'_, W> Future for WriteAllVectored<'_, W> where
W: AsyncWrite + Unpin + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]
fn write_all_vectored(
&'a mut self,
bufs: &'a mut [IoSlice<'a>]
) -> WriteAllVectored<'a, Self>ⓘNotable traits for WriteAllVectored<'_, W>
impl<'_, W> Future for WriteAllVectored<'_, W> where
W: AsyncWrite + Unpin + ?Sized, type Output = Result<(), Error>;
where
Self: Unpin,
[src]Attempts to write multiple buffers into this writer. Read more
fn compat_write(self) -> Compat<Self>ⓘ where
Self: Unpin,
[src]
fn compat_write(self) -> Compat<Self>ⓘ where
Self: Unpin,
[src]Wraps an AsyncWrite
in a compatibility wrapper that allows it to be
used as a futures 0.1 / tokio-io 0.1 AsyncWrite
.
Requires the io-compat
feature to enable. Read more
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more