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 }
44}