Struct gchemol_parser::GrepReader
source · 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 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 view_lines(&mut self, n: usize) -> Result<TextViewer>
pub fn view_lines(&mut self, n: usize) -> Result<TextViewer>
View next n
lines like in a normal text viewer. This method
will forward the cursor by n
lines.
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.
sourcepub fn view_until_next_marker(&mut self) -> Result<TextViewer>
pub fn view_until_next_marker(&mut self) -> Result<TextViewer>
View all lines until next marker like in a normal text viewer. It method will forward the cursor to the next marker.