use std::fmt;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
pub enum TimeSystem {
GPS,
TAI,
TT,
UTC,
UT1,
TDB,
TCG,
TCB,
BDT,
GST,
}
impl fmt::Display for TimeSystem {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match self {
TimeSystem::GPS => write!(f, "GPS"),
TimeSystem::TAI => write!(f, "TAI"),
TimeSystem::TT => write!(f, "TT"),
TimeSystem::UTC => write!(f, "UTC"),
TimeSystem::UT1 => write!(f, "UT1"),
TimeSystem::TDB => write!(f, "TDB"),
TimeSystem::TCG => write!(f, "TCG"),
TimeSystem::TCB => write!(f, "TCB"),
TimeSystem::BDT => write!(f, "BDT"),
TimeSystem::GST => write!(f, "GST"),
}
}
}
#[cfg(test)]
#[cfg_attr(coverage_nightly, coverage(off))]
mod tests {
use super::*;
#[test]
fn test_time_system_display() {
assert_eq!(format!("{}", TimeSystem::GPS), "GPS");
assert_eq!(format!("{}", TimeSystem::TAI), "TAI");
assert_eq!(format!("{}", TimeSystem::TT), "TT");
assert_eq!(format!("{}", TimeSystem::UTC), "UTC");
assert_eq!(format!("{}", TimeSystem::UT1), "UT1");
assert_eq!(format!("{}", TimeSystem::TDB), "TDB");
assert_eq!(format!("{}", TimeSystem::TCG), "TCG");
assert_eq!(format!("{}", TimeSystem::TCB), "TCB");
assert_eq!(format!("{}", TimeSystem::BDT), "BDT");
assert_eq!(format!("{}", TimeSystem::GST), "GST");
}
}