pub struct StandardSink<'p, 's, M: Matcher, W> { /* private fields */ }
Expand description

An implementation of Sink associated with a matcher and an optional file path for the standard printer.

A Sink can be created via the Standard::sink or Standard::sink_with_path methods, depending on whether you want to include a file path in the printer’s output.

Building a StandardSink is cheap, and callers should create a new one for each thing that is searched. After a search has completed, callers may query this sink for information such as whether a match occurred or whether binary data was found (and if so, the offset at which it occurred).

This type is generic over a few type parameters:

  • 'p refers to the lifetime of the file path, if one is provided. When no file path is given, then this is 'static.
  • 's refers to the lifetime of the Standard printer that this type borrows.
  • M refers to the type of matcher used by grep_searcher::Searcher that is reporting results to this sink.
  • W refers to the underlying writer that this printer is writing its output to.

Implementations§

source§

impl<'p, 's, M: Matcher, W: WriteColor> StandardSink<'p, 's, M, W>

source

pub fn has_match(&self) -> bool

Returns true if and only if this printer received a match in the previous search.

This is unaffected by the result of searches before the previous search on this sink.

source

pub fn match_count(&self) -> u64

Return the total number of matches reported to this sink.

This corresponds to the number of times Sink::matched is called on the previous search.

This is unaffected by the result of searches before the previous search on this sink.

source

pub fn binary_byte_offset(&self) -> Option<u64>

If binary data was found in the previous search, this returns the offset at which the binary data was first detected.

The offset returned is an absolute offset relative to the entire set of bytes searched.

This is unaffected by the result of searches before the previous search. e.g., If the search prior to the previous search found binary data but the previous search found no binary data, then this will return None.

source

pub fn stats(&self) -> Option<&Stats>

Return a reference to the stats produced by the printer for all searches executed on this sink.

This only returns stats if they were requested via the StandardBuilder configuration.

Trait Implementations§

source§

impl<'p, 's, M: Debug + Matcher, W: Debug> Debug for StandardSink<'p, 's, M, W>

source§

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

Formats the value using the given formatter. Read more
source§

impl<'p, 's, M: Matcher, W: WriteColor> Sink for StandardSink<'p, 's, M, W>

§

type Error = Error

The type of an error that should be reported by a searcher. Read more
source§

fn matched( &mut self, searcher: &Searcher, mat: &SinkMatch<'_> ) -> Result<bool, Error>

This method is called whenever a match is found. Read more
source§

fn context( &mut self, searcher: &Searcher, ctx: &SinkContext<'_> ) -> Result<bool, Error>

This method is called whenever a context line is found, and is optional to implement. By default, it does nothing and returns true. Read more
source§

fn context_break(&mut self, searcher: &Searcher) -> Result<bool, Error>

This method is called whenever a break in contextual lines is found, and is optional to implement. By default, it does nothing and returns true. Read more
source§

fn binary_data( &mut self, _searcher: &Searcher, binary_byte_offset: u64 ) -> Result<bool, Error>

This method is called whenever binary detection is enabled and binary data is found. If binary data is found, then this is called at least once for the first occurrence with the absolute byte offset at which the binary data begins. Read more
source§

fn begin(&mut self, _searcher: &Searcher) -> Result<bool, Error>

This method is called when a search has begun, before any search is executed. By default, this does nothing. Read more
source§

fn finish( &mut self, searcher: &Searcher, finish: &SinkFinish ) -> Result<(), Error>

This method is called when a search has completed. By default, this does nothing. Read more

Auto Trait Implementations§

§

impl<'p, 's, M, W> !RefUnwindSafe for StandardSink<'p, 's, M, W>

§

impl<'p, 's, M, W> Send for StandardSink<'p, 's, M, W>where M: Send, W: Send, <M as Matcher>::Captures: Send,

§

impl<'p, 's, M, W> !Sync for StandardSink<'p, 's, M, W>

§

impl<'p, 's, M, W> Unpin for StandardSink<'p, 's, M, W>where M: Unpin, <M as Matcher>::Captures: Unpin,

§

impl<'p, 's, M, W> !UnwindSafe for StandardSink<'p, 's, M, W>

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.