Skip to content

Commit 3680146

Browse files
mikemiles-devMichael Mileusnich
and
Michael Mileusnich
authored
056b (#117)
* fix: * Simplify V9/IPFix Parse function. * fix: clippy * fix: re add remaining check v9 * fix: Added more cases for DataNumber Parsing. --------- Co-authored-by: Michael Mileusnich <[email protected]>
1 parent 24c8182 commit 3680146

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

RELEASES.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# 0.5.6
22
* Simplify V9/IPFix Parse function.
3+
* Added more cases for DataNumber Parsing.
34

45
# 0.5.5
56
* More IPFIx/V9 Cleanup.

src/variable_versions/data_number.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,17 @@ impl DataNumber {
124124
pub fn parse(i: &[u8], field_length: u16, signed: bool) -> IResult<&[u8], DataNumber> {
125125
match (field_length, signed) {
126126
(1, false) => Ok(u8::parse(i)?).map(|(i, j)| (i, Self::U8(j))),
127+
(1, true) => Ok(i8::parse(i)?).map(|(i, j)| (i, Self::I32(j as i32))),
127128
(2, false) => Ok(u16::parse(i)?).map(|(i, j)| (i, Self::U16(j))),
129+
(2, true) => Ok(i16::parse(i)?).map(|(i, j)| (i, Self::I32(j as i32))),
128130
(3, false) => Ok(be_u24(i).map(|(i, j)| (i, Self::U24(j)))?),
129131
(3, true) => Ok(be_i24(i).map(|(i, j)| (i, Self::I24(j)))?),
130132
(4, true) => Ok(i32::parse(i)?).map(|(i, j)| (i, Self::I32(j))),
131133
(4, false) => Ok(u32::parse(i)?).map(|(i, j)| (i, Self::U32(j))),
132134
(8, false) => Ok(u64::parse(i)?).map(|(i, j)| (i, Self::U64(j))),
135+
(8, true) => Ok(i64::parse(i)?).map(|(i, j)| (i, Self::I32(j as i32))),
133136
(16, false) => Ok(u128::parse(i)?).map(|(i, j)| (i, Self::U128(j))),
137+
(16, true) => Ok(i128::parse(i)?).map(|(i, j)| (i, Self::I32(j as i32))),
134138
_ => Err(NomErr::Error(NomError::new(i, ErrorKind::Fail))),
135139
}
136140
}

0 commit comments

Comments
 (0)