pub trait AppDirs: Sized {
fn new<P>(prefix: P) -> Result<Self, Error>
where
P: Into<PathBuf>;
fn create(&self) -> Result<(), Error>;
fn data_dir(&self) -> &Path;
fn config_dir(&self) -> &Path;
fn cache_dir(&self) -> &Path;
fn log_dir(&self) -> &Path;
fn temporary_dir(&self) -> &Path;
}