Trait Shell

Source
pub trait Shell:
    Display
    + Send
    + Sync {
    // Required methods
    fn format(&self, data: Statement<'_>) -> String;
    fn get_config_path(&self, home_dir: &Path) -> PathBuf;
    fn get_env_path(&self, home_dir: &Path) -> PathBuf;
    fn get_profile_paths(&self, home_dir: &Path) -> Vec<PathBuf>;
    fn quote(&self, value: &str) -> String;

    // Provided methods
    fn format_env(&self, key: &str, value: Option<&str>) -> String { ... }
    fn format_env_set(&self, key: &str, value: &str) -> String { ... }
    fn format_env_unset(&self, key: &str) -> String { ... }
    fn format_path_set(&self, paths: &[String]) -> String { ... }
    fn format_hook(&self, hook: Hook) -> Result<String, ShellError> { ... }
    fn get_exec_command(&self) -> ShellCommand { ... }
}

Required Methods§

Source

fn format(&self, data: Statement<'_>) -> String

Format the provided statement.

Source

fn get_config_path(&self, home_dir: &Path) -> PathBuf

Return the path in which commands, aliases, and other settings will be configured.

Source

fn get_env_path(&self, home_dir: &Path) -> PathBuf

Return the path in which environment settings will be defined.

Source

fn get_profile_paths(&self, home_dir: &Path) -> Vec<PathBuf>

Return a list of all possible profile/rc/config paths. Ordered from most to least common/applicable.

Source

fn quote(&self, value: &str) -> String

Quote method for shell-specific quoting

Provided Methods§

Source

fn format_env(&self, key: &str, value: Option<&str>) -> String

Format an environment variable by either setting or unsetting the value.

Source

fn format_env_set(&self, key: &str, value: &str) -> String

Format an environment variable that will be set to the entire shell, and be written to a profile file.

Source

fn format_env_unset(&self, key: &str) -> String

Format an environment variable that will be unset from the entire shell, and be written to a profile file.

Source

fn format_path_set(&self, paths: &[String]) -> String

Format the provided paths to prepend the PATH environment variable, and be written to a profile file.

Source

fn format_hook(&self, hook: Hook) -> Result<String, ShellError>

Format a hook for the current shell.

Source

fn get_exec_command(&self) -> ShellCommand

Return parameters for executing a one-off command and then exiting.

Implementors§