[−][src]Struct buf_redux::policy::MinBuffered
A policy for BufReader
which ensures there is at least the given number of
bytes in the buffer, failing this only if the reader is at EOF.
If the minimum buffer length is greater than the buffer capacity, it will be resized.
Example
use buf_redux::BufReader; use buf_redux::policy::MinBuffered; use std::io::{BufRead, Cursor}; let data = (1 .. 16).collect::<Vec<u8>>(); // normally you should use `BufReader::new()` or give a capacity of several KiB or more let mut reader = BufReader::with_capacity(8, Cursor::new(data)) // always at least 4 bytes in the buffer (or until the source is empty) .set_policy(MinBuffered(4)); // always at least 4 bytes in the buffer // first buffer fill, same as `std::io::BufReader` assert_eq!(reader.fill_buf().unwrap(), &[1, 2, 3, 4, 5, 6, 7, 8]); reader.consume(3); // enough data in the buffer, another read isn't done yet assert_eq!(reader.fill_buf().unwrap(), &[4, 5, 6, 7, 8]); reader.consume(4); // `std::io::BufReader` would return `&[8]` assert_eq!(reader.fill_buf().unwrap(), &[8, 9, 10, 11, 12, 13, 14, 15]); reader.consume(5); // no data left in the reader assert_eq!(reader.fill_buf().unwrap(), &[13, 14, 15]);
Methods
impl MinBuffered
[src]
Trait Implementations
impl ReaderPolicy for MinBuffered
[src]
fn before_read(&mut self, buffer: &mut Buffer) -> DoRead
[src]
fn after_consume(&mut self, _buffer: &mut Buffer, _amt: usize)
[src]
Called after bytes are consumed from the buffer. Read more
impl Debug for MinBuffered
[src]
Auto Trait Implementations
impl Unpin for MinBuffered
impl Sync for MinBuffered
impl Send for MinBuffered
impl UnwindSafe for MinBuffered
impl RefUnwindSafe for MinBuffered
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,