use std::{
any::Any,
collections::HashMap,
sync::{Arc, RwLock},
};
#[derive(Debug)]
pub struct Args {
args: HashMap<String, Arc<RwLock<dyn Any + Send + Sync>>>,
}
impl Args {
pub fn new() -> Self {
Args {
args: HashMap::new(),
}
}
pub fn add_arg(&mut self, name: &str, arg: Arc<RwLock<dyn Any + Send + Sync>>) -> &mut Self {
self.args.insert(name.to_string(), arg);
self
}
pub fn arg(&self, name: &str) -> Option<Arc<RwLock<dyn Any + Send + Sync>>> {
self.args.get(name).cloned()
}
}