@@ -330,35 +330,35 @@ impl<'a> ReadRangeItem<'a> {
330330 reader,
331331 buf,
332332 TagNumber :: ContextSpecificOpening ( Self :: DATE_TIME_TAG ) ,
333- "ReadRangeItem decode" ,
333+ "ReadRangeItem decode open date time " ,
334334 ) ?;
335335 Tag :: decode_expected (
336336 reader,
337337 buf,
338338 TagNumber :: Application ( ApplicationTagNumber :: Date ) ,
339- "ReadRangeItem decode" ,
339+ "ReadRangeItem decode date " ,
340340 ) ?;
341341 let date = Date :: decode ( reader, buf) ?;
342342 Tag :: decode_expected (
343343 reader,
344344 buf,
345345 TagNumber :: Application ( ApplicationTagNumber :: Time ) ,
346- "ReadRangeItem decode" ,
346+ "ReadRangeItem decode time " ,
347347 ) ?;
348348 let time = Time :: decode ( reader, buf) ?;
349349 Tag :: decode_expected (
350350 reader,
351351 buf,
352352 TagNumber :: ContextSpecificClosing ( Self :: DATE_TIME_TAG ) ,
353- "ReadRangeItem decode" ,
353+ "ReadRangeItem decode close date time " ,
354354 ) ?;
355355
356356 // value
357357 Tag :: decode_expected (
358358 reader,
359359 buf,
360360 TagNumber :: ContextSpecificOpening ( Self :: VALUE_TAG ) ,
361- "ReadRangeItem decode" ,
361+ "ReadRangeItem decode open value " ,
362362 ) ?;
363363 let tag = Tag :: decode ( reader, buf) ?;
364364 let value_type: ReadRangeValueType = match tag. number {
@@ -371,22 +371,37 @@ impl<'a> ReadRangeItem<'a> {
371371 ReadRangeValueType :: Real => {
372372 let value = f32:: from_be_bytes ( reader. read_bytes ( buf) ?) ;
373373 ReadRangeValue :: Real ( value)
374- }
374+ } ,
375+ ReadRangeValueType :: Bool => {
376+ let bytes = reader. read_byte ( buf) ?;
377+ ReadRangeValue :: Bool ( bytes > 0 )
378+ } ,
379+ ReadRangeValueType :: Unsigned => {
380+ let value = u32:: from_be_bytes ( reader. read_bytes ( buf) ?) ;
381+ ReadRangeValue :: Unsigned ( value)
382+ } ,
383+ ReadRangeValueType :: Signed => {
384+ let value = i32:: from_be_bytes ( reader. read_bytes ( buf) ?) ;
385+ ReadRangeValue :: Signed ( value)
386+ } ,
387+ ReadRangeValueType :: Null => {
388+ ReadRangeValue :: Null
389+ } ,
375390 x => return Err ( Error :: Unimplemented ( Unimplemented :: ReadRangeValueType ( x) ) ) ,
376391 } ;
377392 Tag :: decode_expected (
378393 reader,
379394 buf,
380395 TagNumber :: ContextSpecificClosing ( Self :: VALUE_TAG ) ,
381- "ReadRangeItem decode" ,
396+ "ReadRangeItem decode close value " ,
382397 ) ?;
383398
384399 // status flags
385400 Tag :: decode_expected (
386401 reader,
387402 buf,
388403 TagNumber :: ContextSpecific ( Self :: STATUS_FLAGS_TAG ) ,
389- "ReadRangeItem decode" ,
404+ "ReadRangeItem decode status " ,
390405 ) ?;
391406 let status_flags = BitString :: decode ( & PropertyId :: PropStatusFlags , tag. value , reader, buf) ?;
392407
0 commit comments