Skip to content

Commit 119ac8b

Browse files
committed
BitRange msb lsb
1 parent 3b11180 commit 119ac8b

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

src/svd/bitrange.rs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,15 @@ pub struct BitRange {
1414
pub range_type: BitRangeType,
1515
}
1616

17+
impl BitRange {
18+
pub fn lsb(&self) -> u32 {
19+
self.offset
20+
}
21+
pub fn msb(&self) -> u32 {
22+
self.offset + self.width - 1
23+
}
24+
}
25+
1726
#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
1827
#[derive(Clone, Copy, Debug, PartialEq)]
1928
pub enum BitRangeType {
@@ -125,15 +134,11 @@ impl BitRange {
125134
match self.range_type {
126135
BitRangeType::BitRange => Ok(vec![new_element(
127136
"bitRange",
128-
Some(format!(
129-
"[{}:{}]",
130-
self.offset + self.width - 1,
131-
self.offset
132-
)),
137+
Some(format!("[{}:{}]", self.msb(), self.lsb())),
133138
)]),
134139
BitRangeType::MsbLsb => Ok(vec![
135-
new_element("lsb", Some(format!("{}", self.offset))),
136-
new_element("msb", Some(format!("{}", self.offset + self.width - 1))),
140+
new_element("lsb", Some(format!("{}", self.lsb()))),
141+
new_element("msb", Some(format!("{}", self.msb()))),
137142
]),
138143
BitRangeType::OffsetWidth => Ok(vec![
139144
new_element("bitOffset", Some(format!("{}", self.offset))),

0 commit comments

Comments
 (0)