Trait Command

Source
pub trait Command:
    Sized
    + Debug
    + Clone {
    // Required method
    fn run_internal(
        &self,
        input: Option<&str>,
        clear_env: bool,
        env: HashMap<String, String>,
        del_env: HashSet<String>,
        path: Option<PathBuf>,
    ) -> Result<Output>;

    // Provided methods
    fn and<C: Command>(self, other: C) -> And<Self, C> { ... }
    fn or<C: Command>(self, other: C) -> Or<Self, C> { ... }
    fn then<C: Command>(self, other: C) -> Then<Self, C> { ... }
    fn pipe<C: Command>(self, other: C) -> Pipe<Self, C> { ... }
    fn env(self, key: &str, value: &str) -> Env<Self> { ... }
    fn clear_envs(self) -> ClearEnv<Self> { ... }
    fn without_env(self, key: &str) -> ExceptEnv<Self> { ... }
    fn without_envs<I: IntoIterator<Item = String>>(
        self,
        envs: I,
    ) -> ExceptEnvs<Self, I> { ... }
    fn with_dir<P: AsRef<Path>>(self, dir: P) -> Dir<Self> { ... }
    fn run(&self) -> Result<Output> { ... }
    fn with_input(self, input: &str) -> Input<Self> { ... }
}

Required Methods§

Source

fn run_internal( &self, input: Option<&str>, clear_env: bool, env: HashMap<String, String>, del_env: HashSet<String>, path: Option<PathBuf>, ) -> Result<Output>

The command used to define all others. input: the string to be piped into the next command run. clear_env: if the global enviromental variables should be cleared. env: what enviromental variables to set, supercedes clear_env.

Provided Methods§

Source

fn and<C: Command>(self, other: C) -> And<Self, C>

Equivalent to &&, as in “command 1” && “command 2”.

Source

fn or<C: Command>(self, other: C) -> Or<Self, C>

Equivalent to ||, as in “command 1” || “command 2”.

Source

fn then<C: Command>(self, other: C) -> Then<Self, C>

Equivalent to ;, as in “command 1”; “command 2”.

Source

fn pipe<C: Command>(self, other: C) -> Pipe<Self, C>

Equivalent to |, as in “pipe 1” | “into 2”.

Source

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

Sets the env in the environment the command is run in.

Source

fn clear_envs(self) -> ClearEnv<Self>

Clears the environment for non-explicitly set variables.

Source

fn without_env(self, key: &str) -> ExceptEnv<Self>

Removes a variable from the enviroment in which the command is run.

Source

fn without_envs<I: IntoIterator<Item = String>>( self, envs: I, ) -> ExceptEnvs<Self, I>

Takes an iterable of Strings for keys to remove.

Source

fn with_dir<P: AsRef<Path>>(self, dir: P) -> Dir<Self>

Source

fn run(&self) -> Result<Output>

Runs the command.

Source

fn with_input(self, input: &str) -> Input<Self>

Pipes input into the following command.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl Command for Single

Source§

impl<C: Command> Command for Dir<C>

Source§

impl<F: Command> Command for ClearEnv<F>

Source§

impl<F: Command> Command for Env<F>

Source§

impl<F: Command> Command for ExceptEnv<F>

Source§

impl<F: Command> Command for Input<F>

Source§

impl<F: Command, S: Command> Command for And<F, S>

Source§

impl<F: Command, S: Command> Command for Or<F, S>

Source§

impl<F: Command, S: Command> Command for Pipe<F, S>

Source§

impl<F: Command, S: Command> Command for Then<F, S>