use thiserror::Error;
#[non_exhaustive]
#[derive(Debug, Clone, Copy, PartialEq, Eq, Error)]
pub enum RepositoryError {
#[error("repository.duplicate")]
Duplicate,
#[error("repository.invalid_data")]
InvalidData,
#[error("repository.unavailable")]
Unavailable,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn should_speak_machine_readable_codes() {
assert_eq!(
RepositoryError::Duplicate.to_string(),
"repository.duplicate"
);
assert_eq!(
RepositoryError::InvalidData.to_string(),
"repository.invalid_data"
);
assert_eq!(
RepositoryError::Unavailable.to_string(),
"repository.unavailable"
);
}
}