use std::env::set_var;
use std::time::Duration;
use env_watcher::{ChangeState, Error, Subscribe, sub_env, init_env_watch};
fn main() -> Result<(), Error> {
set_var("key.key", "vvv");
init_env_watch!(Duration::from_millis(25 * 10))?;
let sub = Subscribe::Envs(vec!["key.key".to_string()]);
let (env, rx) = sub_env!(sub)?;
assert_eq!(Some(&String::from("vvv")), env.get("key.key"));
set_var("key.key", "hello");
let event = rx.recv().unwrap();
match event {
ChangeState::Edit(k, v) => {
let k = &*k;
if k.eq("key.key") {
assert_eq!("hello", &*v)
}
}
ChangeState::Delete(_) => {}
}
Ok(())
}