Skip to main content

BufReader

Struct BufReader 

Source
pub struct BufReader<T> { /* private fields */ }
Expand description

Wraps an AsyncRead with an internal buffer, amortizing many small .read() calls into fewer, larger reads on the underlying stream.

Implementations§

Source§

impl<T> BufReader<T>

Source

pub fn new(inner: T) -> Self

Wrap inner with an 8 KiB internal buffer.

Source

pub fn with_capacity(capacity: usize, inner: T) -> Self

Wrap inner with a capacity-byte internal buffer.

Source

pub const fn get_ref(&self) -> &T

Borrow the wrapped stream.

Source

pub fn into_inner(self) -> T

Unwrap back to the underlying stream. Any bytes already buffered but not yet consumed via Self::read are discarded.

Source§

impl<T: AsyncRead> BufReader<T>

Source

pub async fn read(&mut self, buf: &mut [u8]) -> Result<usize>

Read into buf, drawing from the internal buffer first and only refilling it (via one .read() on the wrapped stream) once it’s fully drained.

§Errors

Returns whatever the wrapped stream’s read returns.

Auto Trait Implementations§

§

impl<T> Freeze for BufReader<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for BufReader<T>
where T: RefUnwindSafe,

§

impl<T> Send for BufReader<T>
where T: Send,

§

impl<T> Sync for BufReader<T>
where T: Sync,

§

impl<T> Unpin for BufReader<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for BufReader<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for BufReader<T>
where T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.