use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Enumeration {
pub name: String,
pub value: u64,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Field {
pub name: String,
pub lsb: u32,
pub msb: u32,
pub enumerations: Vec<Enumeration>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Register {
pub name: String,
pub offset: u64,
pub is_raw: bool,
pub fields: Vec<Field>,
}
#[derive(Debug, Serialize, Deserialize, Clone)]
pub struct Peripheral {
pub name: String,
pub word_size: usize,
pub regs: Vec<Register>,
}