Skip to main content

RequireSuccessError

Enum RequireSuccessError 

Source
#[non_exhaustive]
pub enum RequireSuccessError {
#[non_exhaustive]
UnsuccessfulCommand { invocation: Box<Invocation>, status: ExitStatus, stderr: Capture, }, }
Expand description

The error returned when a command ended without success

The error carries the three answers that the reader of a report needs: which command ran, how it ended, and what it said. A program states why it stopped on its standard error, so the error carries that capture and its message shows it.

The command ran. Nothing failed inside the crate, and the error exists because the caller stated that only success is acceptable.

The invocation travels in a box. A result carries its error by value, so the size of the error reaches every function that returns one. The box keeps the error small, and a caller that wraps it in an error of its own needs no box for it.

A later release can add variants, and it can add fields to a variant. Match with a wildcard arm, and bind the fields of a variant with ...

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

#[non_exhaustive]
UnsuccessfulCommand

The command ended without success

The exit status says how the command ended. A command that ran to its end reports a code, and a command that a signal stopped reports no code at all.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§invocation: Box<Invocation>

The command that ended without success

§status: ExitStatus

The status with which the command ended

§stderr: Capture

What the command wrote to its standard error

Trait Implementations§

Source§

impl Clone for RequireSuccessError

Source§

fn clone(&self) -> RequireSuccessError

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for RequireSuccessError

Source§

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

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

impl Display for RequireSuccessError

States which command ended how, and what it wrote about it

The message holds the capture of the standard error, because the reader of a report has only this message and the command wrote its reason there. A command that wrote nothing says so, so that no reader looks for a text that does not exist.

Source§

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

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

impl Eq for RequireSuccessError

Source§

impl Error for RequireSuccessError

Reports the error to the tools of the ecosystem

The error has no source. The command ran, and no other operation failed under this one.

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl PartialEq for RequireSuccessError

Source§

fn eq(&self, other: &RequireSuccessError) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for RequireSuccessError

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.