scrapyard_core/
memory.rs

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}