1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use nu_protocol::Value; use std::ffi::OsString; use std::fmt::Debug; pub trait Env: Debug + Send { fn env(&self) -> Option<Value>; fn path(&self) -> Option<Value>; fn add_env(&mut self, key: &str, value: &str); fn add_path(&mut self, new_path: OsString); } impl Env for Box<dyn Env> { fn env(&self) -> Option<Value> { (**self).env() } fn path(&self) -> Option<Value> { (**self).path() } fn add_env(&mut self, key: &str, value: &str) { (**self).add_env(key, value); } fn add_path(&mut self, new_path: OsString) { (**self).add_path(new_path); } }