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}