Skip to main content

ProcessOutput

Struct ProcessOutput 

Source
pub struct ProcessOutput {
    pub stdout: String,
    pub stderr: String,
    pub stdall: String,
    pub exit_code: Option<i32>,
    pub signal: Option<String>,
    pub duration: Duration,
    pub error: Option<ErrorInfo>,
    pub from: String,
}
Expand description

The result of running a command: captured streams, exit status and timing.

stdall holds stdout and stderr interleaved in arrival order. Following zx, the textual accessors (text, lines, json, buffer and Display) read stdall, which equals stdout whenever the command wrote no stderr.

Fields§

§stdout: String

Captured standard output.

§stderr: String

Captured standard error.

§stdall: String

Standard output and error interleaved in arrival order.

§exit_code: Option<i32>

Exit code; None when the process was killed by a signal or never ran.

§signal: Option<String>

Name of the terminating signal (for example SIGTERM).

§duration: Duration

Wall-clock run time.

§error: Option<ErrorInfo>

Set when the command could not be started.

§from: String

Where the command came from (the command text by default).

Implementations§

Source§

impl ProcessOutput

Source

pub fn new( exit_code: Option<i32>, signal: Option<&str>, stdout: impl Into<String>, stderr: impl Into<String>, stdall: impl Into<String>, ) -> Self

Build an output from its main parts.

Source

pub fn from_error(error: ErrorInfo, from: impl Into<String>) -> Self

An output describing a command that could not be run.

Source

pub fn with_from(self, from: impl Into<String>) -> Self

Set the from location used in messages.

Source

pub fn with_duration(self, duration: Duration) -> Self

Set the duration.

Source

pub fn ok(&self) -> bool

true when the command ran and exited with code 0.

Source

pub fn text(&self) -> String

The combined output as text.

Source

pub fn text_hex(&self) -> String

The combined output hex-encoded (zx text('hex')).

Source

pub fn value_of(&self) -> &str

The combined output, trimmed (zx valueOf()).

Source

pub fn buffer(&self) -> Vec<u8> ⓘ

The combined output as bytes.

Source

pub fn json<T: DeserializeOwned>(&self) -> Result<T, Error>

Parse the combined output as JSON.

Source

pub fn lines(&self) -> Vec<String>

Split the combined output on \r?\n, dropping a trailing empty piece.

Source

pub fn lines_with(&self, delimiter: &str) -> Vec<String>

Split the combined output on a custom delimiter.

Source

pub fn exit_code_info(&self) -> Option<&'static str>

Description of the exit code (for example Command not found).

Source

pub fn message(&self) -> String

The zx error message for this output.

Trait Implementations§

Source§

impl AsRef<Path> for ProcessOutput

Source§

fn as_ref(&self) -> &Path

The trimmed combined output as a path (handy for cd(&output)).

Source§

impl Clone for ProcessOutput

Source§

fn clone(&self) -> Self

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 ProcessOutput

Source§

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

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

impl Default for ProcessOutput

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Display for ProcessOutput

Source§

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

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

impl Error for ProcessOutput

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 IntoIterator for &ProcessOutput

Source§

type Item = String

The type of the elements being iterated over.
Source§

type IntoIter = IntoIter<String>

Which kind of iterator are we turning this into?
Source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
Source§

impl IntoZxArg for &ProcessOutput

Source§

fn into_zx_arg(self) -> ZxArg

Perform the conversion.
Source§

impl IntoZxArg for ProcessOutput

Source§

fn into_zx_arg(self) -> ZxArg

Perform the conversion.
Source§

impl PartialEq for ProcessOutput

Source§

fn eq(&self, other: &Self) -> 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 ProcessOutput

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send> ⓘ

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
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.