Skip to content

Commit

Permalink
fix: Improve error messages and fix typos
Browse files Browse the repository at this point in the history
  • Loading branch information
marcoradocchia committed Dec 6, 2023
1 parent 972b481 commit 2d577f8
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 26 deletions.
6 changes: 3 additions & 3 deletions src/app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,7 @@ impl XdgApp {
/// # use microxdg::{XdgApp, XdgError};
/// # fn main() -> Result<(), XdgError> {
/// let xdg = XdgApp::new("app_name")?;
/// let config_dir = xdg.config()?;
/// let app_config_dir = xdg.app_config()?;
/// # Ok(())
/// # }
/// ```
Expand Down Expand Up @@ -453,7 +453,7 @@ impl XdgApp {
/// # use microxdg::{XdgApp, XdgError};
/// # fn main() -> Result<(), XdgError> {
/// let xdg = XdgApp::new("app_name")?;
/// let data_dir = xdg.data()?;
/// let app_data_dir = xdg.app_data()?;
/// # Ok(())
/// # }
/// ```
Expand Down Expand Up @@ -485,7 +485,7 @@ impl XdgApp {
/// # use microxdg::{XdgApp, XdgError};
/// # fn main() -> Result<(), XdgError> {
/// let xdg = XdgApp::new("app_name")?;
/// let state_dir = xdg.state()?;
/// let app_state_dir = xdg.app_state()?;
/// # Ok(())
/// # }
/// ```
Expand Down
41 changes: 18 additions & 23 deletions src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,28 +23,24 @@ pub enum XdgError {
}

impl fmt::Display for XdgError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
XdgError::HomeNotFound => write!(
f,
"unable to locate user's home directory, \
neither HOME or USER environment variables set"
XdgError::HomeNotFound => formatter.write_str(
"Unable to retrieve user's home directory, \
neither HOME nor USER environment variable set",
),
XdgError::RelativePath { env_var_key, path } => write!(
f,
"environment variable '{env_var_key}' contains a relative \
path '{path}' (paths in XDG environment variables must \
be asbolute)",
XdgError::RelativePath { env_var_key, path } => formatter.write_fmt(format_args!(
"The `{env_var_key}` environment variable contains a relative \
path, while paths in XDG environment variables must be asbolute: `{path}`",
path = path.display()
),
)),
XdgError::InvalidUnicode {
env_var_key,
env_var_val,
} => write!(
f,
"environment variable '{env_var_key}' contains invalid unicode \
{env_var_val:?}",
),
} => formatter.write_fmt(format_args!(
"The `{env_var_key}` environment variable contains invalid unicode: \
{env_var_val:?}",
)),
}
}
}
Expand All @@ -61,23 +57,22 @@ mod test {
#[test]
fn display_error() -> Result<(), Box<dyn Error>> {
assert_eq!(
"unable to locate user's home directory, neither HOME or USER \
environment variables set",
"Unable to retrieve user's home directory, \
neither HOME nor USER environment variable set",
XdgError::HomeNotFound.to_string()
);
assert_eq!(
"environment variable 'XDG_CONFIG_HOME' contains a relative path \
'./config' (paths in XDG environment variables must \
be asbolute)",
"The `XDG_CONFIG_HOME` environment variable contains a relative \
path, while paths in XDG environment variables must be asbolute: `./config`",
XdgError::RelativePath {
env_var_key: "XDG_CONFIG_HOME",
path: PathBuf::from("./config"),
}
.to_string(),
);
assert_eq!(
"environment variable 'XDG_CONFIG_HOME' contains invalid unicode \
\"\\xF0\\x90\\x80g\"",
"The `XDG_CONFIG_HOME` environment variable contains invalid unicode: \
\"\\xF0\\x90\\x80g\"",
XdgError::InvalidUnicode {
env_var_key: "XDG_CONFIG_HOME",
env_var_val: OsStr::from_bytes(&INVALID_UNICODE_BYTES).to_os_string(),
Expand Down

0 comments on commit 2d577f8

Please sign in to comment.