scrapyard_core/
irqs.rs

1use std::error::Error;
2use std::fs::File;
3use std::path::Path;
4
5use serde_json;
6
7#[derive(Serialize, Deserialize, Debug)]
8pub struct IRQ {
9    pub desc: String,
10    pub value: String,
11}
12
13#[derive(Serialize, Deserialize, Debug)]
14pub struct IRQS {
15    #[serde(rename = "IRQS")] pub irqs: Vec<IRQ>,
16}
17
18struct InterruptBuilder {
19    irqs: IRQS,
20}
21
22impl InterruptBuilder {
23    pub fn new(path: &Path) -> Result<InterruptBuilder, Box<Error>> {
24        let file = File::open(path)?;
25        let irqs: IRQS = serde_json::from_reader(file)?;
26
27        Ok(InterruptBuilder { irqs: irqs })
28    }
29}
30
31#[cfg(test)]
32mod tests {
33
34    use super::*;
35
36    #[test]
37    fn load_irqs() {
38
39        //let sample = Path::new("./samples/NVIC-STM32F042_Modes.json");
40        //let irqs = InterruptBuilder::new(sample);
41
42        //assert!(irqs.is_ok());
43    }
44}