@@ -28,6 +28,19 @@ pub struct CompressorHeader {
28
28
frame_count : i16 ,
29
29
}
30
30
31
+ fn verify_header_versions ( header : & CompressorHeader ) {
32
+ let current_version = env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ;
33
+ trace ! ( "Versions: c:{} h:{}" , current_version, header. version) ;
34
+ match compare ( & current_version, & header. version ) {
35
+ Ok ( Cmp :: Lt ) => panic ! (
36
+ "Can't decompress! File is version ({}) is higher than compressor version ({})!" ,
37
+ header. version, current_version
38
+ ) ,
39
+ Ok ( Cmp :: Eq | Cmp :: Gt ) => debug ! ( "File version: {}" , header. version) ,
40
+ _ => panic ! ( "Wrong version number!" ) ,
41
+ }
42
+ }
43
+
31
44
impl Decode for CompressorHeader {
32
45
fn decode < __D : :: bincode:: de:: Decoder > (
33
46
decoder : & mut __D ,
@@ -37,16 +50,7 @@ impl Decode for CompressorHeader {
37
50
version : Decode :: decode ( decoder) ?,
38
51
frame_count : Decode :: decode ( decoder) ?,
39
52
} ;
40
- let current_version = env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ;
41
- trace ! ( "Versions: c:{} h:{}" , current_version, header. version) ;
42
- match compare ( & current_version, & header. version ) {
43
- Ok ( Cmp :: Lt ) => panic ! (
44
- "Can't decompress! File is version ({}) is higher than compressor version ({})!" ,
45
- header. version, current_version
46
- ) ,
47
- Ok ( Cmp :: Eq | Cmp :: Gt ) => debug ! ( "File version: {}" , header. version) ,
48
- _ => panic ! ( "Wrong version number!" ) ,
49
- }
53
+ verify_header_versions ( & header) ;
50
54
Ok ( header)
51
55
}
52
56
}
@@ -60,16 +64,7 @@ impl<'__de> ::bincode::BorrowDecode<'__de> for CompressorHeader {
60
64
version : bincode:: BorrowDecode :: borrow_decode ( decoder) ?,
61
65
frame_count : bincode:: BorrowDecode :: borrow_decode ( decoder) ?,
62
66
} ;
63
- let current_version = env ! ( "CARGO_PKG_VERSION" ) . to_string ( ) ;
64
- trace ! ( "Versions: c:{} h:{}" , current_version, header. version) ;
65
- match compare ( current_version. clone ( ) , header. version . clone ( ) ) {
66
- Ok ( Cmp :: Lt ) => panic ! (
67
- "Can't decompress! File is version ({}) is higher than compressor version ({})!" ,
68
- header. version, current_version
69
- ) ,
70
- Ok ( Cmp :: Eq | Cmp :: Gt ) => debug ! ( "File version: {}" , header. version) ,
71
- _ => panic ! ( "Wrong version number!" ) ,
72
- }
67
+ verify_header_versions ( & header) ;
73
68
Ok ( header)
74
69
}
75
70
}
@@ -104,7 +99,7 @@ mod tests {
104
99
let b = cs. to_bytes ( ) ;
105
100
let cs2 = CompressedStream :: from_bytes ( & b) ;
106
101
assert_eq ! (
107
- compare( env!( "CARGO_PKG_VERSION" ) . to_string ( ) , cs2. header. version) ,
102
+ compare( env!( "CARGO_PKG_VERSION" ) , cs2. header. version) ,
108
103
Ok ( Cmp :: Eq )
109
104
) ;
110
105
}
@@ -118,7 +113,7 @@ mod tests {
118
113
let b = cs. to_bytes ( ) ;
119
114
let cs2 = CompressedStream :: from_bytes ( & b) ;
120
115
assert_eq ! (
121
- compare( env!( "CARGO_PKG_VERSION" ) . to_string ( ) , cs2. header. version) ,
116
+ compare( env!( "CARGO_PKG_VERSION" ) , cs2. header. version) ,
122
117
Ok ( Cmp :: Gt )
123
118
) ;
124
119
}
0 commit comments