sdmmc_core/command/class/class0/cmd0/
arg.rsuse crate::lib_bitfield;
use crate::result::{Error, Result};
mod fast_boot;
pub use fast_boot::*;
lib_bitfield! {
pub Argument(u32): u32 {
raw_fast_boot_mode: 31, 0;
}
}
impl Argument {
pub const LEN: usize = 4;
pub const DEFAULT: u32 = 0;
pub const fn new() -> Self {
Self(Self::DEFAULT)
}
pub const fn fast_boot_mode(&self) -> Result<FastBootMode> {
FastBootMode::from_raw(self.raw_fast_boot_mode())
}
pub fn set_fast_boot_mode(&mut self, val: FastBootMode) {
self.set_raw_fast_boot_mode(val.into_raw())
}
pub const fn try_from_bits(val: u32) -> Result<Self> {
match Self(val) {
arg if arg.fast_boot_mode().is_err() => Err(Error::invalid_field_variant(
"cmd::arg::fast_boot_mode",
arg.raw_fast_boot_mode() as usize,
)),
arg => Ok(arg),
}
}
}
impl Default for Argument {
fn default() -> Self {
Self::new()
}
}