pub trait UserDirs: Sized { fn new() -> Result<Self, Error>; fn home_dir(&self) -> &Path; fn data_dir(&self) -> &Path; fn cache_dir(&self) -> &Path; }