pub struct OutputMatcher<'a> { /* private fields */ }
Expand description

Match substrings in command output.

Due to the problems described in crate::env::ExecutionError::NonZero, the output of crate::env::Environment::output_of() doesn’t reliably catch the contents of stderr in the actual stderr variable. For Providers, this means that when searching for error strings in command output, both stdout and stderr must be checked for occurences of the pattern. This struct removes a lof of the resulting boilerplate code for first converting a Vec<u8> into something string-like, and then matching stdout and stderr against a pattern.

Implementations§

source§

impl<'a> OutputMatcher<'a>

source

pub fn new(output: &'a Output) -> Self

Create a new instance of OutputMatcher for the given command output.

source

pub fn starts_with(&self, pat: &str) -> bool

Returns true if either stdout or stderr starts with pat.

source

pub fn contains(&self, pat: &str) -> bool

Returns true if either stdout or stderr contains pat.

source

pub fn ends_with(&self, pat: &str) -> bool

Returns true if either stdout or stderr ends with pat.

source

pub fn exit_code(&self) -> Option<i32>

Returns the raw error code of the command output.

source

pub fn is_empty(&self) -> bool

Returns true if both stdout and stderr are empty (except for whitespace)

Trait Implementations§

source§

impl<'x> From<&'x Output> for OutputMatcher<'x>

source§

fn from(value: &'x Output) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for OutputMatcher<'a>

§

impl<'a> Send for OutputMatcher<'a>

§

impl<'a> Sync for OutputMatcher<'a>

§

impl<'a> Unpin for OutputMatcher<'a>

§

impl<'a> UnwindSafe for OutputMatcher<'a>

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.