sdmmc_core/command/
class.rs

1//! Represents the card command classes for the SD/MMC specification.
2
3pub mod class0;
4pub mod class1;
5pub mod class2;
6pub mod class4;
7pub mod class5;
8pub mod class6;
9pub mod class7;
10pub mod class8;
11pub mod class9;
12
13pub mod class10;
14pub mod class11;
15
16pub use class0::CommandClass0;
17pub use class1::CommandClass1;
18pub use class2::CommandClass2;
19pub use class4::CommandClass4;
20pub use class5::CommandClass5;
21pub use class6::CommandClass6;
22pub use class7::CommandClass7;
23pub use class8::CommandClass8;
24pub use class9::CommandClass9;
25
26pub use class10::CommandClass10;
27pub use class11::CommandClass11;
28
29/// Represents the MMC `Card Command Class`.
30#[repr(u32)]
31#[derive(Clone, Copy, Debug, Eq, PartialEq)]
32pub enum CommandClass {
33    Class0(CommandClass0),
34    Class1(CommandClass1),
35    Class2(CommandClass2),
36    Class4(CommandClass4),
37    Class5(CommandClass5),
38    Class6(CommandClass6),
39    Class7(CommandClass7),
40    Class8(CommandClass8),
41    Class9(CommandClass9),
42    Class10(CommandClass10),
43    Class11(CommandClass11),
44}
45
46impl CommandClass {
47    /// Creates a new [CommandClass].
48    pub const fn new() -> Self {
49        Self::Class0(CommandClass0::new())
50    }
51}
52
53impl Default for CommandClass {
54    fn default() -> Self {
55        Self::new()
56    }
57}