[−][src]Struct ensured_bufreader::EnsuredBufReader
A BufRead
er that ensures ensured bytes in buffer.
EnsuredBufReader
keeps ensured bytes in buffer if it can read from underlying reader.
To fetch bytes into buffer, call fill_buf()
.
Methods
impl<R: Read> EnsuredBufReader<R, Vec<u8>>
[src]
ⓘImportant traits for EnsuredBufReader<R, B>pub fn new(inner: R) -> EnsuredBufReader<R, Vec<u8>>
[src]
Creates a new EnsuredBufReader
with a default capacity (DEFAULT_BUFFER_SIZE
) and a default ensured size (DEFAULT_ENSURED_BYTES
).
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let r = EnsuredBufReader::new(f); Ok(()) }
ⓘImportant traits for EnsuredBufReader<R, B>pub fn with_capacity_and_ensured_size(
capacity: usize,
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, Vec<u8>>
[src]
capacity: usize,
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, Vec<u8>>
Creates a new EnsuredBufReader
with a specified capacity
and ensured_size
.
capacity
must be larger than or equal to ensured_size
.
ensured_size
must be positive.
Panics
Panics if capacity
is smaller than ensured_size
.
Panics if ensured_size
is 0.
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let r = EnsuredBufReader::with_capacity_and_ensured_size(1024, 32, f); Ok(()) }
impl<'_, R: Read> EnsuredBufReader<R, &'_ mut [u8]>
[src]
ⓘImportant traits for EnsuredBufReader<R, B>pub fn from_mut_ref(buf: &mut [u8], inner: R) -> EnsuredBufReader<R, &mut [u8]>
[src]
Creates a new EnsuredBufReader
with given buffer.
Buffer length must be larger than or equal to DEFAULT_ENSURED_BYTES
.
Panics
Panics if buffer is smaller than DEFAULT_ENSURED_BYTES.
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let mut buf = [0u8; 1024]; let r = EnsuredBufReader::from_mut_ref(&mut buf, f); Ok(()) }
ⓘImportant traits for EnsuredBufReader<R, B>pub fn from_mut_ref_and_ensured_size(
buf: &mut [u8],
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, &mut [u8]>
[src]
buf: &mut [u8],
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, &mut [u8]>
Creates a new EnsuredBufReader
with given buffer and a specified ensured_size
.
Buffer length must be larger than or equal to ensured_size
.
ensured_size
must be positive.
Panics
Panics if buffer is smaller than ensured_size
.
Panics if ensured_size
is 0.
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let mut buf = [0u8; 1024]; let r = EnsuredBufReader::from_mut_ref_and_ensured_size(&mut buf, 32, f); Ok(()) }
impl<R: Read, B: AsRef<[u8]> + AsMut<[u8]>> EnsuredBufReader<R, B>
[src]
ⓘImportant traits for EnsuredBufReader<R, B>pub fn from_buffer(buf: B, inner: R) -> EnsuredBufReader<R, B>
[src]
Creates a new EnsuredBufReader
with given buffer.
Buffer length must be larger than or equal to DEFAULT_ENSURED_BYTES
.
Panics
Panics if buffer is smaller than DEFAULT_ENSURED_BYTES.
ⓘImportant traits for EnsuredBufReader<R, B>pub fn from_buffer_and_ensured_size(
buf: B,
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, B>
[src]
buf: B,
ensured_size: usize,
inner: R
) -> EnsuredBufReader<R, B>
Creates a new EnsuredBufReader
with given buffer and a specified ensured_size
.
Buffer length must be larger than or equal to ensured_size
.
ensured_size
must be positive.
Panics
Panics if buffer is smaller than ensured_size
.
Panics if ensured_size
is 0.
pub fn buffer(&self) -> &[u8]
[src]
Returns a reference to current buffer. This method doesn't read bytes from underlying reader.
Examples
use std::fs::File; use std::io::{self, BufRead}; use ensured_bufreader::EnsuredBufReader; fn main() -> io::Result<()> { let f = File::open("README.md")?; let mut r = EnsuredBufReader::new(f); // Read bytes from file and consume 8 bytes. let read_bytes = r.fill_buf()?.to_owned(); r.consume(8); // Get buffer. // Current buffer should be 8 bytes shorter than `read_bytes`. let buf = r.buffer(); assert_eq!(buf, &read_bytes[8..]); Ok(()) }
pub fn fill_buf_to_expected_size(
&mut self,
expected_size: usize
) -> Result<&[u8]>
[src]
&mut self,
expected_size: usize
) -> Result<&[u8]>
Try to fill buffer and return reference to buffer.
The buffer filled at least expected_size
bytes if EnsuredBufReader
could read from underlying reader.
Errors
Returns error that has .kind() == ErrorKind::InvalidInput
if expected_size
is larger than capacity.
Examples
The buffer will be filled to expected_size
.
use std::fs::File; use std::io::{self, BufRead}; use ensured_bufreader::EnsuredBufReader; fn main() -> io::Result<()> { let f = File::open("README.md")?; let mut r = EnsuredBufReader::with_capacity_and_ensured_size(1024, 1, f); // Fill buffer. let read_bytes = r.fill_buf_to_expected_size(512)?; assert!(read_bytes.len() >= 512); Ok(()) }
If expected_size
is larger than capacity, error will be returned.
use std::fs::File; use std::io::{self, BufRead, ErrorKind}; use ensured_bufreader::EnsuredBufReader; fn main() -> io::Result<()> { let f = File::open("README.md")?; let mut r = EnsuredBufReader::with_capacity_and_ensured_size(512, 1, f); let err = r.fill_buf_to_expected_size(513).unwrap_err(); assert_eq!(err.kind(), ErrorKind::InvalidInput); Ok(()) }
pub fn get_capacity(&self) -> usize
[src]
Get current capacity size.
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let r = EnsuredBufReader::new(f); assert_eq!(r.get_capacity(), 8192); Ok(()) }
pub fn get_ensured_size(&self) -> usize
[src]
Get current ensured size.
Examples
use std::fs::File; use ensured_bufreader::EnsuredBufReader; fn main() -> std::io::Result<()> { let f = File::open("README.md")?; let r = EnsuredBufReader::new(f); assert_eq!(r.get_ensured_size(), 128); Ok(()) }
pub fn current_bytes(&self) -> usize
[src]
Returns count of bytes in buffer.
Trait Implementations
impl<R, B> Debug for EnsuredBufReader<R, B> where
R: Read + Debug,
B: AsRef<[u8]> + AsMut<[u8]>,
[src]
R: Read + Debug,
B: AsRef<[u8]> + AsMut<[u8]>,
impl<R: Read, B: AsRef<[u8]> + AsMut<[u8]>> Read for EnsuredBufReader<R, B>
[src]
fn read(&mut self, buf: &mut [u8]) -> Result<usize>
[src]
fn read_vectored(&mut self, bufs: &mut [IoSliceMut]) -> Result<usize, Error>
1.36.0[src]
unsafe fn initializer(&self) -> Initializer
[src]
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
fn bytes(self) -> Bytes<Self>
1.0.0[src]
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
impl<R: Read, B: AsRef<[u8]> + AsMut<[u8]>> BufRead for EnsuredBufReader<R, B>
[src]
fn fill_buf(&mut self) -> Result<&[u8]>
[src]
fn consume(&mut self, amt: usize)
[src]
fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
fn split(self, byte: u8) -> Split<Self>
1.0.0[src]
fn lines(self) -> Lines<Self>
1.0.0[src]
Auto Trait Implementations
impl<R, B> Send for EnsuredBufReader<R, B> where
B: Send,
R: Send,
B: Send,
R: Send,
impl<R, B> Sync for EnsuredBufReader<R, B> where
B: Sync,
R: Sync,
B: Sync,
R: Sync,
impl<R, B> Unpin for EnsuredBufReader<R, B> where
B: Unpin,
R: Unpin,
B: Unpin,
R: Unpin,
impl<R, B> RefUnwindSafe for EnsuredBufReader<R, B> where
B: RefUnwindSafe,
R: RefUnwindSafe,
B: RefUnwindSafe,
R: RefUnwindSafe,
impl<R, B> UnwindSafe for EnsuredBufReader<R, B> where
B: UnwindSafe,
R: UnwindSafe,
B: UnwindSafe,
R: UnwindSafe,
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,