use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq)]
#[repr(u8)]
pub enum TimerStrategy {
Sleep = 0,
BusyWait = 1,
NativeTimer = 2,
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn timer_strategy() {
assert_eq!(std::mem::size_of::<TimerStrategy>(), 1);
let s = TimerStrategy::Sleep;
let sc = Clone::clone(&s);
assert_eq!(s as u8, sc as u8);
}
#[test]
fn debug() {
let s = TimerStrategy::Sleep;
assert_eq!(format!("{:?}", s), "Sleep");
}
#[test]
fn serde() {
let s = TimerStrategy::Sleep;
let serialized = serde_json::to_string(&s).unwrap();
assert_eq!(serialized, "\"Sleep\"");
let deserialized: TimerStrategy = serde_json::from_str(&serialized).unwrap();
assert_eq!(deserialized, TimerStrategy::Sleep);
}
}