sdmmc_core/command/
class.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//! Represents the card command classes for the SD/MMC specification.

pub mod class0;
pub mod class1;
pub mod class2;
pub mod class4;
pub mod class5;
pub mod class6;
pub mod class7;
pub mod class8;
pub mod class9;

pub mod class10;
pub mod class11;

pub use class0::CommandClass0;
pub use class1::CommandClass1;
pub use class2::CommandClass2;
pub use class4::CommandClass4;
pub use class5::CommandClass5;
pub use class6::CommandClass6;
pub use class7::CommandClass7;
pub use class8::CommandClass8;
pub use class9::CommandClass9;

pub use class10::CommandClass10;
pub use class11::CommandClass11;

/// Represents the MMC `Card Command Class`.
#[repr(u32)]
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum CommandClass {
    Class0(CommandClass0),
    Class1(CommandClass1),
    Class2(CommandClass2),
    Class4(CommandClass4),
    Class5(CommandClass5),
    Class6(CommandClass6),
    Class7(CommandClass7),
    Class8(CommandClass8),
    Class9(CommandClass9),
    Class10(CommandClass10),
    Class11(CommandClass11),
}

impl CommandClass {
    /// Creates a new [CommandClass].
    pub const fn new() -> Self {
        Self::Class0(CommandClass0::new())
    }
}

impl Default for CommandClass {
    fn default() -> Self {
        Self::new()
    }
}