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§
Sourcefn run_internal(
&self,
input: Option<&str>,
clear_env: bool,
env: HashMap<String, String>,
del_env: HashSet<String>,
path: Option<PathBuf>,
) -> Result<Output>
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§
Sourcefn and<C: Command>(self, other: C) -> And<Self, C>
fn and<C: Command>(self, other: C) -> And<Self, C>
Equivalent to &&, as in “command 1” && “command 2”.
Sourcefn or<C: Command>(self, other: C) -> Or<Self, C>
fn or<C: Command>(self, other: C) -> Or<Self, C>
Equivalent to ||, as in “command 1” || “command 2”.
Sourcefn then<C: Command>(self, other: C) -> Then<Self, C>
fn then<C: Command>(self, other: C) -> Then<Self, C>
Equivalent to ;, as in “command 1”; “command 2”.
Sourcefn pipe<C: Command>(self, other: C) -> Pipe<Self, C>
fn pipe<C: Command>(self, other: C) -> Pipe<Self, C>
Equivalent to |, as in “pipe 1” | “into 2”.
Sourcefn env(self, key: &str, value: &str) -> Env<Self>
fn env(self, key: &str, value: &str) -> Env<Self>
Sets the env in the environment the command is run in.
Sourcefn clear_envs(self) -> ClearEnv<Self>
fn clear_envs(self) -> ClearEnv<Self>
Clears the environment for non-explicitly set variables.
Sourcefn without_env(self, key: &str) -> ExceptEnv<Self>
fn without_env(self, key: &str) -> ExceptEnv<Self>
Removes a variable from the enviroment in which the command is run.
Sourcefn without_envs<I: IntoIterator<Item = String>>(
self,
envs: I,
) -> ExceptEnvs<Self, I>
fn without_envs<I: IntoIterator<Item = String>>( self, envs: I, ) -> ExceptEnvs<Self, I>
Takes an iterable of Strings for keys to remove.
fn with_dir<P: AsRef<Path>>(self, dir: P) -> Dir<Self>
Sourcefn with_input(self, input: &str) -> Input<Self>
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.