sdmmc_core/register/csd/
r2w_factor.rs

1use crate::lib_enum;
2use crate::result::{Error, Result};
3
4lib_enum! {
5    /// Represents the type block program time as a multiple of the read access time.
6    WriteSpeedFactor: u8 {
7        default: Multiple1,
8        error: Error,
9        /// Writes the same as read.
10        Multiple1 = 0,
11        /// Writes 1/2 as fast as read.
12        Multiple2 = 1,
13        /// Writes 1/4 as fast as read.
14        Multiple4 = 2,
15        /// Writes 1/8 as fast as read.
16        Multiple8 = 3,
17        /// Writes 1/16 as fast as read.
18        Multiple16 = 4,
19        /// Writes 1/32 as fast as read.
20        Multiple32 = 5,
21    }
22}
23
24impl WriteSpeedFactor {
25    /// Attempts to convert an inner representation into a [WriteSpeedFactor].
26    pub const fn try_from_inner(val: u8) -> Result<Self> {
27        Self::from_raw(val)
28    }
29
30    /// Converts a [WriteSpeedFactor] into an inner representation.
31    pub const fn into_inner(self) -> u8 {
32        self.into_raw()
33    }
34}