pub trait Res: Sync + Send {
// Required methods
fn get_state(&self) -> &str;
fn stringify(&mut self) -> Option<()>;
fn get_string(self) -> Option<String>;
fn get_str(&self) -> Option<&str>;
fn from_string(res: Option<String>) -> Self
where Self: Sized;
fn from_str(res: Option<&str>) -> Self
where Self: Sized;
fn set_string(&mut self, res: Option<String>);
fn user(self, f: &dyn Fn(&mut Self)) -> Self
where Self: Sized;
}