sdmmc-core 0.5.0

SD/MMC core data structures and algorithms
Documentation
use crate::lib_enum;
use crate::result::{Error, Result};

lib_enum! {
    /// Represents the `BUS_MODE_SELECTION` sub-field of the `BUS_WIDTH` field.
    BusModeSelection: u8 {
        default: Sdr1bit,
        error: Error,
        /// Represents 8 bit data bus using dual data rate.
        Ddr8bit = 6,
        /// Represents 4 bit data bus using dual data rate.
        Ddr4bit = 5,
        /// Represents 8 bit data bus using single data rate.
        Sdr8bit = 2,
        /// Represents 4 bit data bus using single data rate.
        Sdr4bit = 1,
        /// Represents 1 bit data bus using single data rate.
        Sdr1bit = 0,
    }
}

impl BusModeSelection {
    /// Attempts to convert an inner representation into a [BusModeSelection].
    pub const fn try_from_inner(val: u8) -> Result<Self> {
        Self::from_raw(val)
    }

    /// Converts a [BusModeSelection] into an inner representation.
    pub const fn into_inner(self) -> u8 {
        self.into_raw()
    }
}