@@ -124,13 +124,17 @@ impl DataNumber {
124
124
pub fn parse ( i : & [ u8 ] , field_length : u16 , signed : bool ) -> IResult < & [ u8 ] , DataNumber > {
125
125
match ( field_length, signed) {
126
126
( 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 ) ) ) ,
127
128
( 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 ) ) ) ,
128
130
( 3 , false ) => Ok ( be_u24 ( i) . map ( |( i, j) | ( i, Self :: U24 ( j) ) ) ?) ,
129
131
( 3 , true ) => Ok ( be_i24 ( i) . map ( |( i, j) | ( i, Self :: I24 ( j) ) ) ?) ,
130
132
( 4 , true ) => Ok ( i32:: parse ( i) ?) . map ( |( i, j) | ( i, Self :: I32 ( j) ) ) ,
131
133
( 4 , false ) => Ok ( u32:: parse ( i) ?) . map ( |( i, j) | ( i, Self :: U32 ( j) ) ) ,
132
134
( 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 ) ) ) ,
133
136
( 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 ) ) ) ,
134
138
_ => Err ( NomErr :: Error ( NomError :: new ( i, ErrorKind :: Fail ) ) ) ,
135
139
}
136
140
}
0 commit comments