#[derive(Eq, PartialEq, Debug, Clone, Copy)]
pub enum VerificationResult {
Ok,
Unauthorized,
}
impl From<bool> for VerificationResult {
fn from(value: bool) -> Self {
if value { Self::Ok } else { Self::Unauthorized }
}
}
impl From<VerificationResult> for bool {
fn from(result: VerificationResult) -> Self {
matches!(result, VerificationResult::Ok)
}
}
#[cfg(test)]
mod tests {
use super::VerificationResult;
#[test]
fn converts_from_bool() {
assert_eq!(VerificationResult::from(true), VerificationResult::Ok);
assert_eq!(
VerificationResult::from(false),
VerificationResult::Unauthorized
);
}
#[test]
fn converts_to_bool() {
assert!(bool::from(VerificationResult::Ok));
assert!(!bool::from(VerificationResult::Unauthorized));
}
#[test]
fn variants_remain_distinct() {
assert_ne!(VerificationResult::Ok, VerificationResult::Unauthorized);
}
}