1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
use super::{ AccessType, EnumeratedValue, EnumeratedValuesUsage, ModifiedWriteValues, ReadAction, WriteConstraint, }; use crate::output::{DimArrayIndex, SvdConstant}; use serde::Deserialize; #[derive(Debug, Deserialize, Eq, PartialEq, Clone)] #[serde(rename_all = "camelCase")] pub struct Field { pub derived_from: Option<String>, pub dim: Option<SvdConstant>, pub dim_increment: Option<SvdConstant>, pub dim_index: Option<SvdConstant>, pub dim_name: Option<String>, pub dim_array_index: Option<DimArrayIndex>, pub name: String, pub description: Option<String>, pub bit_offset: Option<SvdConstant>, pub bit_width: Option<SvdConstant>, pub lsb: Option<SvdConstant>, pub msb: Option<SvdConstant>, pub bit_range: Option<SvdConstant>, pub access: Option<AccessType>, pub modified_write_values: Option<ModifiedWriteValues>, pub write_constraint: Option<WriteConstraint>, pub read_action: Option<ReadAction>, pub enumerated_values: Option<EnumAccessType>, } #[derive(Debug, Deserialize, Eq, PartialEq, Clone)] #[serde(rename_all = "camelCase")] pub struct EnumeratedValues { pub derived_from: Option<String>, pub name: Option<String>, pub header_enum_name: Option<String>, pub usage: Option<EnumeratedValuesUsage>, pub enumerated_value: Vec<EnumeratedValue>, } #[derive(Debug, Deserialize, Eq, PartialEq, Clone)] pub enum EnumAccessType { ReadAndWrite(EnumeratedValues), ReadWrite { read: EnumeratedValues, write: EnumeratedValues, }, Read(EnumeratedValues), Write(EnumeratedValues), }