use crate::lib_enum;
use crate::result::{Error, Result};
lib_enum! {
AccessTimeUnit: u8 {
default: Ns1,
error: Error,
Ns1 = 0,
Ns10 = 1,
Ns100 = 2,
Us1 = 3,
Us10 = 4,
Us100 = 5,
Ms1 = 6,
Ms10 = 7,
}
}
impl AccessTimeUnit {
pub const fn ns(&self) -> u32 {
match self {
Self::Ns1 => 1,
Self::Ns10 => 10,
Self::Ns100 => 100,
Self::Us1 => 1000,
Self::Us10 => 10_000,
Self::Us100 => 100_000,
Self::Ms1 => 1_000_000,
Self::Ms10 => 10_000_000,
}
}
pub const fn try_from_inner(val: u8) -> Result<Self> {
Self::from_raw(val)
}
pub const fn into_inner(self) -> u8 {
self.into_raw()
}
}