Skip to main content

Redirection

Enum Redirection 

Source
#[non_exhaustive]
pub enum Redirection { Capture, Inherit, Null, File(Arc<File>), }
Expand description

Where a child process’s stdout or stderr goes.

The stderr default is Capture (every error variant carries captured stderr, so that’s almost always what you want). The stdout default is also Capture for Cmd::run — the bytes end up in RunOutput::stdout.

For Cmd::spawn, stdout is always piped internally so callers can take_stdout or read through the handle; a non-Capture stdout redirection here is not currently supported on the spawn path.

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

Capture

Capture into memory (default). Available in RunOutput on success and in error variants on failure.

§

Inherit

Inherit the parent’s file descriptor. Useful when the child should prompt the user (e.g., ssh password prompts) or when the user should see live progress.

§

Null

Discard (/dev/null). The corresponding captured field will be empty.

§

File(Arc<File>)

Redirect to a file. The Arc lets Cmd stay Clone — the underlying file is try_clone()d per spawn so every stage / retry gets its own file descriptor. Construct via Redirection::file to avoid wrapping the Arc by hand.

Implementations§

Source§

impl Redirection

Source

pub fn file(f: File) -> Redirection

Build a File variant from a std::fs::File, wrapping it in Arc internally. Prefer this over constructing the variant directly.

Trait Implementations§

Source§

impl Clone for Redirection

Source§

fn clone(&self) -> Redirection

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Redirection

Source§

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

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

impl Default for Redirection

Source§

fn default() -> Redirection

Returns the “default value” for a type. 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> 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, 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.