#![warn(missing_docs)]
#[cfg(all(unix, target_os = "macos"))]
mod osx;
#[cfg(all(unix, not(target_os = "macos")))]
mod unix;
#[cfg(windows)]
mod windows;
mod error;
#[cfg(all(unix, target_os = "macos"))]
use osx as platform;
#[cfg(all(unix, not(target_os = "macos")))]
use unix as platform;
#[cfg(windows)]
use windows as platform;
use std::path::Path;
pub use error::DirsError;
pub use error::Result;
pub struct Directories {
inner: platform::Directories,
}
impl Directories {
pub fn with_prefix<P, Q>(prefix_lowercased: P, prefix_capitalized: Q)
-> Result<Directories>
where P: AsRef<Path>, Q: AsRef<Path>
{
fn with_prefix_(prefix_lowercased: &Path, prefix_capitalized: &Path)
-> Result<Directories>
{
Ok(Directories {
inner: platform::Directories::with_prefix(
prefix_lowercased,
prefix_capitalized)?,
})
}
with_prefix_(prefix_lowercased.as_ref(), prefix_capitalized.as_ref())
}
pub fn config_home(&self) -> &Path {
self.inner.config_home()
}
pub fn cache_home(&self) -> &Path {
self.inner.cache_home()
}
pub fn bin_home(&self) -> &Path {
self.inner.bin_home()
}
pub fn data_home(&self) -> &Path {
self.inner.data_home()
}
}