Skip to main content

Command

Struct Command 

Source
pub struct Command { /* private fields */ }
Expand description

Structured description of an external command to run.

Command stores a program and argument vector instead of parsing a shell-like command line. This avoids quoting ambiguity and accidental shell injection. Use Self::shell only when shell parsing, redirection, expansion, or pipes are intentionally required.

§Author

Haixing Hu

Implementations§

Source§

impl Command

Source

pub fn new(program: &str) -> Self

Creates a command from a program name or path.

§Parameters
  • program - Executable name or path to run.
§Returns

A command with no arguments or per-command overrides.

Source

pub fn shell(command_line: &str) -> Self

Creates a command executed through the platform shell.

On Unix-like platforms this creates sh -c <command_line>. On Windows this creates cmd /C <command_line>. Prefer Self::new with explicit arguments when shell parsing is not required.

§Parameters
  • command_line - Shell command line to execute.
§Returns

A command that invokes the platform shell.

Source

pub fn arg(self, arg: &str) -> Self

Adds one positional argument.

§Parameters
  • arg - Argument to append.
§Returns

The updated command.

Source

pub fn args(self, args: &[&str]) -> Self

Adds multiple positional arguments.

§Parameters
  • args - Arguments to append in order.
§Returns

The updated command.

Source

pub fn working_directory<P>(self, working_directory: P) -> Self
where P: Into<PathBuf>,

Sets a per-command working directory.

§Parameters
  • working_directory - Directory used as the child process working directory.
§Returns

The updated command.

Source

pub fn env(self, key: &str, value: &str) -> Self

Adds or overrides an environment variable for this command.

§Parameters
  • key - Environment variable name.
  • value - Environment variable value.
§Returns

The updated command.

Source

pub fn program(&self) -> &OsStr

Returns the executable name or path.

§Returns

Program executable name or path as an OsStr.

Source

pub fn arguments(&self) -> &[OsString]

Returns the configured argument list.

§Returns

Borrowed argument list in submission order.

Source

pub fn working_directory_override(&self) -> Option<&Path>

Returns the per-command working directory override.

§Returns

Some(path) when the command has a working directory override, or None when the runner default should be used.

Source

pub fn environment(&self) -> &[(OsString, OsString)]

Returns environment variable overrides.

§Returns

Borrowed environment variable entries in insertion order.

Trait Implementations§

Source§

impl Clone for Command

Source§

fn clone(&self) -> Command

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 Command

Source§

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

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

impl PartialEq for Command

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for Command

Source§

impl StructuralPartialEq for Command

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.