Skip to content

Commit 822a680

Browse files
committed
add write constraint reversed range check
1 parent 2244ffb commit 822a680

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

svd-rs/src/writeconstraint.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,16 @@ pub enum Error {
3434
/// The value is not in range.
3535
#[error("Value {0} out of range {1:?}")]
3636
OutOfRange(u64, core::ops::Range<u64>),
37+
/// Minimum is greater than maximum.
38+
#[error("Range minimum {0} is greater than maximum {1}")]
39+
ReversedRange(u64, u64),
3740
}
3841

3942
impl WriteConstraintRange {
4043
pub(crate) fn check_range(&self, range: core::ops::Range<u64>) -> Result<(), SvdError> {
44+
if self.min > self.max {
45+
return Err(Error::ReversedRange(self.min, self.max).into());
46+
}
4147
for v in [&self.min, &self.max] {
4248
if !range.contains(v) {
4349
return Err(Error::OutOfRange(*v, range.clone()).into());

0 commit comments

Comments
 (0)