use serde::Serialize;
use crate::Error;
#[derive(Copy, Clone, Debug, Eq, PartialEq, Serialize)]
pub enum SessionStatus {
Ok = 0,
OkMobileTerminatedTooLarge = 1,
OkLocationUnacceptableQuality = 2,
Timeout = 10,
MobileOriginatedTooLarge = 12,
RFLinkLoss = 13,
IMEIProtocolAnomaly = 14,
Prohibited = 15,
}
impl SessionStatus {
pub fn new(n: u8) -> Result<SessionStatus, Error> {
match n {
0 => Ok(SessionStatus::Ok),
1 => Ok(SessionStatus::OkMobileTerminatedTooLarge),
2 => Ok(SessionStatus::OkLocationUnacceptableQuality),
10 => Ok(SessionStatus::Timeout),
12 => Ok(SessionStatus::MobileOriginatedTooLarge),
13 => Ok(SessionStatus::RFLinkLoss),
14 => Ok(SessionStatus::IMEIProtocolAnomaly),
15 => Ok(SessionStatus::Prohibited),
_ => Err(Error::UnknownSessionStatus(n)),
}
}
}