Struct 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

Source

pub fn try_from_path(p: &Path) -> Result<Self>

Build from file in path

Source

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.
Source

pub fn goto_start(&mut self)

Goto the start of inner file.

Source

pub fn goto_end(&mut self)

Goto the end of inner file.

Source

pub fn num_markers(&self) -> usize

Return the number of marked positions.

Source

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.

Source

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.

Source

pub fn current_marker(&mut self) -> usize

Return current marker index

Source

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.

Source

pub fn get_mut(&mut self) -> &mut BufReader<File>

Gets a mutable reference to the underlying reader.

Source

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.

Trait Implementations§

Source§

impl Debug for GrepReader

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.