Struct lazy_reader::Reader [−][src]
pub struct Reader<D: Decoder, Read> { pub reader: Read, pub buffer: Vec<D::Word>, pub result: String, pub offset: usize, pub length: usize, pub character: Char<Error>, }
Expand description
A buffered reader able to efficiently read big inputs in constant memory.
It supports various encodings via Decoder
and also bookmarks which allow it to return
back to a character at specific offset.
Fields
reader: Read
Expand description
The reader that holds the input.
buffer: Vec<D::Word>
Expand description
The buffer that stores the input data.
result: String
Expand description
The string representation of data that has been read.
offset: usize
Expand description
The buffer offset of the current element read.
length: usize
Expand description
The number of elements stored in buffer.
character: Char<Error>
Expand description
The last character read.
Implementations
Trait Implementations
impl<D: PartialEq + Decoder, Read: PartialEq> PartialEq<Reader<D, Read>> for Reader<D, Read> where
D::Word: PartialEq,
[src]
impl<D: PartialEq + Decoder, Read: PartialEq> PartialEq<Reader<D, Read>> for Reader<D, Read> where
D::Word: PartialEq,
[src]impl<D: Decoder, R: Read<Item = D::Word>> ReaderOps for Reader<D, R>
[src]
impl<D: Decoder, R: Read<Item = D::Word>> ReaderOps for Reader<D, R>
[src]fn next_char(&mut self, bookmarks: &mut BookmarkManager) -> Result<char, Error>
[src]
fn next_char(&mut self, bookmarks: &mut BookmarkManager) -> Result<char, Error>
[src]Read the next character from input.
fn advance_char(&mut self, bookmarks: &mut BookmarkManager)
[src]
fn advance_char(&mut self, bookmarks: &mut BookmarkManager)
[src]Advance along the input without returning the character.
fn finished(&self, _bookmarks: &BookmarkManager) -> bool
[src]
fn finished(&self, _bookmarks: &BookmarkManager) -> bool
[src]Check if the reader has finished reading. Read more
fn fill(&mut self, bookmarks: &mut BookmarkManager)
[src]
fn fill(&mut self, bookmarks: &mut BookmarkManager)
[src]Fill the buffer with words from the input.
fn max_possible_rewind_len(&self, bookmarks: &BookmarkManager) -> usize
[src]
fn max_possible_rewind_len(&self, bookmarks: &BookmarkManager) -> usize
[src]Get the maximum possible rewind for the reader.
fn append_result(&mut self, char: char)
[src]
fn append_result(&mut self, char: char)
[src]Append the provided character to the reader’s result.
fn pop_result(&mut self) -> String
[src]
fn pop_result(&mut self) -> String
[src]Return self.result
and sets the internal result to empty.
fn result_mut(&mut self) -> &mut String
[src]
fn result_mut(&mut self) -> &mut String
[src]Get a mutable reference to the reader’s result.
fn buffer_len(&self) -> usize
[src]
fn buffer_len(&self) -> usize
[src]Get the current length of the reader’s buffer.
fn set_offset(&mut self, off: usize)
[src]
fn set_offset(&mut self, off: usize)
[src]Set the buffer offset to the specified value.
fn truncate_match(&mut self, len: usize)
[src]
fn truncate_match(&mut self, len: usize)
[src]Truncate the current match to the provided length.
impl<D: Decoder, Read> StructuralPartialEq for Reader<D, Read>
[src]
Auto Trait Implementations
impl<D, Read> RefUnwindSafe for Reader<D, Read> where
Read: RefUnwindSafe,
<D as Decoder>::Word: RefUnwindSafe,
Read: RefUnwindSafe,
<D as Decoder>::Word: RefUnwindSafe,
impl<D, Read> Send for Reader<D, Read> where
Read: Send,
<D as Decoder>::Word: Send,
Read: Send,
<D as Decoder>::Word: Send,
impl<D, Read> Sync for Reader<D, Read> where
Read: Sync,
<D as Decoder>::Word: Sync,
Read: Sync,
<D as Decoder>::Word: Sync,
impl<D, Read> Unpin for Reader<D, Read> where
Read: Unpin,
<D as Decoder>::Word: Unpin,
Read: Unpin,
<D as Decoder>::Word: Unpin,
impl<D, Read> UnwindSafe for Reader<D, Read> where
Read: UnwindSafe,
<D as Decoder>::Word: UnwindSafe,
Read: UnwindSafe,
<D as Decoder>::Word: UnwindSafe,
Blanket Implementations
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
impl<T> HasRefValue for T where
T: ?Sized,
[src]
impl<T> HasRefValue for T where
T: ?Sized,
[src]type RefValue = T
impl<T> PhantomConversions for T
[src]
impl<T> PhantomConversions for T
[src]fn phantom_into<P>() -> P where
Self: PhantomInto<P>,
[src]
Self: PhantomInto<P>,
fn phantom_from<P>() -> Self where
P: PhantomInto<Self>,
[src]
P: PhantomInto<Self>,
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
pub fn to_subset(&self) -> Option<SS>
pub fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct self
from the equivalent element of its
superset. Read more
pub fn is_in_subset(&self) -> bool
pub fn is_in_subset(&self) -> bool
Checks if self
is actually part of its subset T
(and can be converted to it).
pub fn to_subset_unchecked(&self) -> SS
pub fn to_subset_unchecked(&self) -> SS
Use with care! Same as self.to_subset
but without any property checks. Always succeeds.
pub fn from_subset(element: &SS) -> SP
pub fn from_subset(element: &SS) -> SP
The inclusion map: converts self
to the equivalent element of its superset.
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<T> TypeDisplay for T
[src]
impl<T> TypeDisplay for T
[src]pub default fn type_display() -> String
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,