@@ -345,7 +345,7 @@ async fn read_tag_value<F: MetadataFetch>(
345
345
Type :: BYTE | Type :: UNDEFINED => Value :: Byte ( data. read_u8 ( ) ?) ,
346
346
Type :: SBYTE => Value :: Signed ( data. read_i8 ( ) ? as i32 ) ,
347
347
Type :: SHORT => Value :: Short ( data. read_u16 ( ) ?) ,
348
- Type :: SSHORT => Value :: Signed ( data. read_i16 ( ) ? as i32 ) ,
348
+ Type :: SSHORT => Value :: SignedShort ( data. read_i16 ( ) ?) ,
349
349
Type :: LONG => Value :: Unsigned ( data. read_u32 ( ) ?) ,
350
350
Type :: SLONG => Value :: Signed ( data. read_i32 ( ) ?) ,
351
351
Type :: FLOAT => Value :: Float ( data. read_f32 ( ) ?) ,
@@ -446,7 +446,7 @@ async fn read_tag_value<F: MetadataFetch>(
446
446
Type :: SSHORT => {
447
447
let mut v = Vec :: new ( ) ;
448
448
for _ in 0 ..count {
449
- v. push ( Value :: Signed ( i32 :: from ( data. read_i16 ( ) ?) ) ) ;
449
+ v. push ( Value :: SignedShort ( data. read_i16 ( ) ?) ) ;
450
450
}
451
451
return Ok ( Value :: List ( v) ) ;
452
452
}
@@ -525,7 +525,7 @@ async fn read_tag_value<F: MetadataFetch>(
525
525
Type :: SSHORT => {
526
526
let mut v = Vec :: with_capacity ( count as _ ) ;
527
527
for _ in 0 ..count {
528
- v. push ( Value :: Signed ( cursor. read_i16 ( ) . await ? as i32 ) )
528
+ v. push ( Value :: SignedShort ( cursor. read_i16 ( ) . await ?) )
529
529
}
530
530
Ok ( Value :: List ( v) )
531
531
}
@@ -657,10 +657,10 @@ mod test {
657
657
( [ 1 , 1 , 0 , 7 , 0 , 0 , 0 , 1 , 42 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Byte ( 42 ) ) , // undefined
658
658
( [ 1 , 1 , 2 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Ascii ( "" . into ( ) ) ) ,
659
659
( [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "" . into ( ) ) ) ,
660
- ( [ 1 , 1 , 3 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Short ( 42 ) ) ,
661
- ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 ] , Endianness :: BigEndian , Value :: Short ( 42 ) ) ,
662
- ( [ 1 , 1 , 8 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Signed ( 42 ) ) , // signedshort
663
- ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 ] , Endianness :: BigEndian , Value :: Signed ( 42 ) ) , // signedshort
660
+ ( [ 1 , 1 , 3 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Short ( 42 ) ) ,
661
+ ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 ] , Endianness :: BigEndian , Value :: Short ( 42 ) ) ,
662
+ ( [ 1 , 1 , 8 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: SignedShort ( 42 ) ) ,
663
+ ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 ] , Endianness :: BigEndian , Value :: SignedShort ( 42 ) ) ,
664
664
( [ 1 , 1 , 4 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Unsigned ( 42 ) ) ,
665
665
( [ 1 , 1 , 0 , 4 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 42 ] , Endianness :: BigEndian , Value :: Unsigned ( 42 ) ) ,
666
666
( [ 1 , 1 , 9 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Signed ( 42 ) ) ,
@@ -702,8 +702,8 @@ mod test {
702
702
( [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "" . into ( ) ) ) ,
703
703
( [ 1 , 1 , 3 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Short ( 42 ) ) ,
704
704
( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Short ( 42 ) ) ,
705
- ( [ 1 , 1 , 8 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Signed ( 42 ) ) , //sshort
706
- ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Signed ( 42 ) ) , //sshort
705
+ ( [ 1 , 1 , 8 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: SignedShort ( 42 ) ) ,
706
+ ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: SignedShort ( 42 ) ) ,
707
707
( [ 1 , 1 , 4 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Unsigned ( 42 ) ) ,
708
708
( [ 1 , 1 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 ] , Endianness :: BigEndian , Value :: Unsigned ( 42 ) ) ,
709
709
( [ 1 , 1 , 9 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: Signed ( 42 ) ) ,
@@ -755,10 +755,10 @@ mod test {
755
755
( [ 1 , 1 , 0 , 7 , 0 , 0 , 0 , 4 , 42 , 42 , 42 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Byte ( 42 ) ; 4 ] ) ) , // undefined
756
756
( [ 1 , 1 , 2 , 0 , 4 , 0 , 0 , 0 , 42 , 42 , 42 , 0 ] , Endianness :: LittleEndian , Value :: Ascii ( "***" . into ( ) ) ) ,
757
757
( [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 4 , 42 , 42 , 42 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "***" . into ( ) ) ) ,
758
- ( [ 1 , 1 , 3 , 0 , 2 , 0 , 0 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 2 ] ) ) ,
759
- ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 2 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 2 ] ) ) ,
760
- ( [ 1 , 1 , 8 , 0 , 2 , 0 , 0 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 2 ] ) ) , //sshort i16
761
- ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 2 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 2 ] ) ) , //sshort i16
758
+ ( [ 1 , 1 , 3 , 0 , 2 , 0 , 0 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 2 ] ) ) ,
759
+ ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 2 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 2 ] ) ) ,
760
+ ( [ 1 , 1 , 8 , 0 , 2 , 0 , 0 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 2 ] ) ) ,
761
+ ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 2 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 2 ] ) ) ,
762
762
( [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 4 , b'A' , b'B' , b'C' , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "ABC" . into ( ) ) ) ,
763
763
// others don't fit, neither 8-types and we special-case IFD
764
764
] ;
@@ -792,10 +792,10 @@ mod test {
792
792
( [ 1 , 1 , 0 , 7 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Byte ( 42 ) ; 8 ] ) ) , //undefined u8
793
793
( [ 1 , 1 , 2 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 0 ] , Endianness :: LittleEndian , Value :: Ascii ( "*******" . into ( ) ) ) ,
794
794
( [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 8 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "*******" . into ( ) ) ) ,
795
- ( [ 1 , 1 , 3 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 4 ] ) ) ,
796
- ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 4 ] ) ) ,
797
- ( [ 1 , 1 , 8 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 4 ] ) ) , //sshort i16
798
- ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 4 ] ) ) , //sshort i16
795
+ ( [ 1 , 1 , 3 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 4 ] ) ) ,
796
+ ( [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 4 ] ) ) ,
797
+ ( [ 1 , 1 , 8 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 4 ] ) ) ,
798
+ ( [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 4 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 4 ] ) ) ,
799
799
( [ 1 , 1 , 4 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 2 ] ) ) ,
800
800
( [ 1 , 1 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 2 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 2 ] ) ) ,
801
801
( [ 1 , 1 , 9 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 2 ] ) ) ,
@@ -837,8 +837,8 @@ mod test {
837
837
( vec ! [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 5 , 0 , 0 , 0 , 12 , 42 , 42 , 42 , 42 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "****" . into ( ) ) ) ,
838
838
( vec ! [ 1 , 1 , 3 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 3 ] ) ) ,
839
839
( vec ! [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 3 ] ) ) ,
840
- ( vec ! [ 1 , 1 , 8 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 3 ] ) ) , // Type::SSHORT ),
841
- ( vec ! [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 3 ] ) ) , // Type::SSHORT ),
840
+ ( vec ! [ 1 , 1 , 8 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 3 ] ) ) ,
841
+ ( vec ! [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 12 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 3 ] ) ) ,
842
842
( vec ! [ 1 , 1 , 4 , 0 , 2 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 2 ] ) ) ,
843
843
( vec ! [ 1 , 1 , 0 , 4 , 0 , 0 , 0 , 2 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 2 ] ) ) ,
844
844
( vec ! [ 1 , 1 , 9 , 0 , 2 , 0 , 0 , 0 , 12 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 2 ] ) ) ,
@@ -891,8 +891,8 @@ mod test {
891
891
( vec ! [ 1 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 9 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 42 , 0 ] , Endianness :: BigEndian , Value :: Ascii ( "********" . into ( ) ) ) ,
892
892
( vec ! [ 1 , 1 , 3 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 5 ] ) ) ,
893
893
( vec ! [ 1 , 1 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Short ( 42 ) ; 5 ] ) ) ,
894
- ( vec ! [ 1 , 1 , 8 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 5 ] ) ) , //TagType::SSHORT ),
895
- ( vec ! [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 5 ] ) ) , //TagType::SSHORT ),
894
+ ( vec ! [ 1 , 1 , 8 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 5 ] ) ) ,
895
+ ( vec ! [ 1 , 1 , 0 , 8 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 5 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: SignedShort ( 42 ) ; 5 ] ) ) ,
896
896
( vec ! [ 1 , 1 , 4 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 3 ] ) ) ,
897
897
( vec ! [ 1 , 1 , 0 , 4 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 ] , Endianness :: BigEndian , Value :: List ( vec ! [ Value :: Unsigned ( 42 ) ; 3 ] ) ) ,
898
898
( vec ! [ 1 , 1 , 9 , 0 , 3 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 20 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 , 42 , 0 , 0 , 0 ] , Endianness :: LittleEndian , Value :: List ( vec ! [ Value :: Signed ( 42 ) ; 3 ] ) ) ,
0 commit comments