use crate::lib_enum;
use crate::result::{Error, Result};
lib_enum! {
CsdStructure: u8 {
default: V12,
error: Error,
V10 = 0b00,
V11 = 0b01,
V12 = 0b10,
Ext = 0b11,
}
}
impl CsdStructure {
pub const MASK: u8 = 0x3;
pub const fn from_inner(val: u8) -> Self {
match val & Self::MASK {
0 => Self::V10,
1 => Self::V11,
2 => Self::V12,
_ => Self::Ext,
}
}
pub const fn try_from_inner(val: u8) -> Result<Self> {
Self::from_raw(val)
}
pub const fn into_inner(self) -> u8 {
self.into_raw()
}
}