VariableEnvironment

Trait VariableEnvironment 

Source
pub trait VariableEnvironment {
    type VarName: Eq + Hash;
    type Var;

    // Required methods
    fn var<Q>(&self, name: &Q) -> Option<&Self::Var>
       where Self::VarName: Borrow<Q>,
             Q: Hash + Eq + ?Sized;
    fn set_var(&mut self, name: Self::VarName, val: Self::Var);
    fn env_vars(&self) -> Cow<'_, [(&Self::VarName, &Self::Var)]>;
}
Expand description

An interface for setting and getting shell and environment variables.

Required Associated Types§

Source

type VarName: Eq + Hash

The type of the name this environment associates for a variable.

Source

type Var

The type of variables this environment holds.

Required Methods§

Source

fn var<Q>(&self, name: &Q) -> Option<&Self::Var>
where Self::VarName: Borrow<Q>, Q: Hash + Eq + ?Sized,

Get the value of some variable. The values of both shell-only and environment variables will be looked up and returned.

Source

fn set_var(&mut self, name: Self::VarName, val: Self::Var)

Set the value of some variable, maintaining its status as an environment variable if previously set as such.

Source

fn env_vars(&self) -> Cow<'_, [(&Self::VarName, &Self::Var)]>

Unset the value of some variable (including environment variables). Get all current pairs of environment variables and their values.

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.

Implementations on Foreign Types§

Source§

impl<'a, T: ?Sized + VariableEnvironment> VariableEnvironment for &'a mut T

Source§

type VarName = <T as VariableEnvironment>::VarName

Source§

type Var = <T as VariableEnvironment>::Var

Source§

fn var<Q>(&self, name: &Q) -> Option<&Self::Var>
where Self::VarName: Borrow<Q>, Q: Hash + Eq + ?Sized,

Source§

fn set_var(&mut self, name: Self::VarName, val: Self::Var)

Source§

fn env_vars(&self) -> Cow<'_, [(&Self::VarName, &Self::Var)]>

Implementors§