pub struct GrepReader { /* private fields */ }
Expand description
Quick grep text by marking the line that matching a pattern, suitable for very large text file.
Implementations§
Source§impl GrepReader
impl GrepReader
Sourcepub fn try_from_path(p: &Path) -> Result<Self>
pub fn try_from_path(p: &Path) -> Result<Self>
Build from file in path
Sourcepub fn mark(
&mut self,
pattern: &str,
max_count: impl Into<Option<usize>>,
) -> Result<usize>
pub fn mark( &mut self, pattern: &str, max_count: impl Into<Option<usize>>, ) -> Result<usize>
Mark positions that matching pattern
, so that we can seek
these positions later. Regex can be used in pattern
. Return
the number of marked positions.
§Paramters
- max_count: exits search if max_count matches reached.
Sourcepub fn goto_start(&mut self)
pub fn goto_start(&mut self)
Goto the start of inner file.
Sourcepub fn num_markers(&self) -> usize
pub fn num_markers(&self) -> usize
Return the number of marked positions.
Sourcepub fn goto_next_marker(&mut self) -> Result<u64>
pub fn goto_next_marker(&mut self) -> Result<u64>
Goto the next position that marked. Return marker position on success. Return Err if already reached the last marker or other errors.
Sourcepub fn goto_marker(&mut self, marker_index: usize) -> Result<u64>
pub fn goto_marker(&mut self, marker_index: usize) -> Result<u64>
Goto the marked position in marker_index
. Will panic if marker_index
out of range.
Sourcepub fn current_marker(&mut self) -> usize
pub fn current_marker(&mut self) -> usize
Return current marker index
Sourcepub fn read_lines(&mut self, n: usize, buffer: &mut String) -> Result<()>
pub fn read_lines(&mut self, n: usize, buffer: &mut String) -> Result<()>
Return n
lines in string on success from current
position. Return error if reached EOF early.
Sourcepub fn get_mut(&mut self) -> &mut BufReader<File>
pub fn get_mut(&mut self) -> &mut BufReader<File>
Gets a mutable reference to the underlying reader.
Sourcepub fn read_until_next_marker(&mut self, s: &mut String) -> Result<()>
pub fn read_until_next_marker(&mut self, s: &mut String) -> Result<()>
Return text from current position to the next marker or file end. It method will forward the cursor to the next marker.