use int_enum::IntEnum;
#[repr(u16)]
#[derive(Debug, IntEnum)]
pub(crate) enum InformationRequest {
Export = 0,
Name = 1,
Description = 2,
BlockSize = 3,
MetaContext = 4,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_information_request_conversion() {
assert_eq!(InformationRequest::Export as u16, 0);
assert_eq!(InformationRequest::Name as u16, 1);
assert_eq!(InformationRequest::Description as u16, 2);
assert_eq!(InformationRequest::BlockSize as u16, 3);
assert_eq!(InformationRequest::MetaContext as u16, 4);
match InformationRequest::try_from(0u16) {
Ok(req) => assert!(matches!(req, InformationRequest::Export)),
Err(_) => panic!("Failed to convert 0 to InformationRequest::Export"),
}
match InformationRequest::try_from(3u16) {
Ok(req) => assert!(matches!(req, InformationRequest::BlockSize)),
Err(_) => panic!("Failed to convert 3 to InformationRequest::BlockSize"),
}
assert!(InformationRequest::try_from(99u16).is_err());
}
}