fold-rs 0.1.0

Minimal, dependency-free resolver for standard base directories
Documentation
//! Error types for base-directory resolution

/// Reason a base directory could not be resolved.
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Error {
    /// Home directory could not be determined
    ///
    /// Unix: `$HOME`
    /// Windows: `%USERPROFILE%`
    NoHome,

    /// No runtime directory set
    ///
    /// Only relevant on UNIX
    NoRuntime,
}

/// Result alias for fallible base-directory resolution.
pub type Result<T> = std::result::Result<T, Error>;

impl std::fmt::Display for Error {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        match self {
            Error::NoHome => write!(f, "could not determine home directory"),
            Error::NoRuntime => write!(f, "could not determine runtime directory"),
        }
    }
}

impl std::error::Error for Error {}