1#[derive(Serialize, Deserialize, Debug, PartialEq)]
2pub enum Memory {
3 Flash { start: u32, size: u32 },
4 Eeprom { start: u32, size: u32 },
5 Ram { start: u32, size: u32 },
6}
7
8impl Memory {
9 pub fn start(&self) -> u32 {
10 match *self {
11 Memory::Flash { start, .. } => start,
12 Memory::Eeprom { start, .. } => start,
13 Memory::Ram { start, .. } => start,
14 }
15 }
16
17 pub fn end(&self) -> u32 {
18 match *self {
19 Memory::Flash { start, size } => start + size,
20 Memory::Eeprom { start, size } => start + size,
21 Memory::Ram { start, size } => start + size,
22 }
23 }
24
25 pub fn size(&self) -> u32 {
26 match *self {
27 Memory::Flash { size, .. } => size,
28 Memory::Eeprom { size, .. } => size,
29 Memory::Ram { size, .. } => size,
30 }
31 }
32}