[−][src]Struct encodingbufreader::BufReaderEncoding
Modificate std::io::BufReader
Methods
impl<R: Read> BufReaderEncoding<R>
[src]
ⓘImportant traits for BufReaderEncoding<R>pub fn new(inner: R, encoder: EncodingRef) -> BufReaderEncoding<R>
[src]
ⓘImportant traits for BufReaderEncoding<R>pub fn with_capacity(
cap: usize,
inner: R,
encoder: EncodingRef
) -> BufReaderEncoding<R>
[src]
cap: usize,
inner: R,
encoder: EncodingRef
) -> BufReaderEncoding<R>
ⓘImportant traits for Lines<R>pub fn lines(self) -> Lines<R>
[src]
Returns an iterator over the lines of this reader.
The iterator returned from this function will yield instances of
io::Result
<
String
>
. Each string returned will not have a newline
byte (the 0xA byte) or CRLF (0xD, 0xA bytes) at the end.
Examples
std::io::Cursor
is a type that implements BufRead
. In
this example, we use Cursor
to iterate over all the lines in a byte
slice.
use encodingbufreader::{BufReaderEncoding}; use encoding::all::UTF_8; let bytes = "This string\nwill be read".as_bytes(); let mut lines_iter = BufReaderEncoding::new(bytes,UTF_8).map(|l| l.unwrap()); assert_eq!(lines_iter.next(), Some(String::from("This string"))); assert_eq!(lines_iter.next(), Some(String::from("will be read"))); assert_eq!(lines_iter.next(), None);
Errors
Each line of the iterator has the same error semantics as BufRead::read_line
.
pub fn read_line(&mut self, buf: &mut String) -> Result<usize>
[src]
Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer.
This function will read bytes from the underlying stream until the
newline delimiter (the 0xA byte) or EOF is found. Once found, all bytes
up to, and including, the delimiter (if found) will be appended to
buf
.
If successful, this function will return the total number of bytes read.
If this function returns Ok(0)
, the stream has reached EOF.
Errors
This function has the same error semantics as [std::io::Read::read_until
] and will
also return an error if the read bytes are not valid encoding. If an I/O
error is encountered then buf
may contain some bytes already read in
the event that all data read so far was valid encoding.
Examples
use encodingbufreader::{BufReaderEncoding}; use encoding::all::GB18030; let bytes: &[u8] = &[ 213, 226, 202, 199, 210, 187, 184, 246, 215, 214, 183, 251, 180, 174, 10, 189, 171, 187, 225, 177, 187, 182, 193, 200, 161, ]; let mut bufreader = BufReaderEncoding::new(bytes, GB18030); let mut buf = String::new(); let num_bytes = bufreader .read_line(&mut buf) .expect("reading from bytes won't fail"); assert_eq!(num_bytes, 15); assert_eq!(buf, "这是一个字符串\n");
pub fn set_encoder(&mut self, encoder: EncodingRef)
[src]
Trait Implementations
impl<R> Debug for BufReaderEncoding<R> where
R: Debug,
[src]
R: Debug,
impl<R: Read> Read for BufReaderEncoding<R>
[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]
Like read
, except that it reads into a slice of buffers. Read more
unsafe fn initializer(&self) -> Initializer
[src]
read_initializer
)Determines if this Read
er can work with buffers of uninitialized memory. Read more
fn read_to_end(&mut self, buf: &mut Vec<u8>) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, placing them into buf
. Read more
fn read_to_string(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until EOF in this source, appending them to buf
. Read more
fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), Error>
1.6.0[src]
Read the exact number of bytes required to fill buf
. Read more
fn by_ref(&mut self) -> &mut Self
1.0.0[src]
Creates a "by reference" adaptor for this instance of Read
. Read more
fn bytes(self) -> Bytes<Self>
1.0.0[src]
Transforms this Read
instance to an [Iterator
] over its bytes. Read more
fn chain<R>(self, next: R) -> Chain<Self, R> where
R: Read,
1.0.0[src]
R: Read,
Creates an adaptor which will chain this stream with another. Read more
fn take(self, limit: u64) -> Take<Self>
1.0.0[src]
Creates an adaptor which will read at most limit
bytes from it. Read more
impl<R: Read> BufRead for BufReaderEncoding<R>
[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]
Read all bytes into buf
until the delimiter byte
or EOF is reached. Read more
fn read_line(&mut self, buf: &mut String) -> Result<usize, Error>
1.0.0[src]
Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more
fn split(self, byte: u8) -> Split<Self>
1.0.0[src]
Returns an iterator over the contents of this reader split on the byte byte
. Read more
fn lines(self) -> Lines<Self>
1.0.0[src]
Returns an iterator over the lines of this reader. Read more
Auto Trait Implementations
impl<R> Sync for BufReaderEncoding<R> where
R: Sync,
R: Sync,
impl<R> Send for BufReaderEncoding<R> where
R: Send,
R: Send,
impl<R> Unpin for BufReaderEncoding<R> where
R: Unpin,
R: Unpin,
impl<R> !RefUnwindSafe for BufReaderEncoding<R>
impl<R> !UnwindSafe for BufReaderEncoding<R>
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> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,