@@ -39,6 +39,11 @@ mod _lzma {
39
39
use std:: fmt;
40
40
use xz2:: stream:: { Action , Check , Error , Filters , Status , Stream } ;
41
41
42
+ #[ cfg( windows) ]
43
+ type EnumVal = i32 ;
44
+ #[ cfg( not( windows) ) ]
45
+ type EnumVal = u32 ;
46
+
42
47
const BUFSIZ : usize = 8192 ;
43
48
// TODO: can't find this in lzma-sys, but find way not to hardcode this
44
49
#[ pyattr]
@@ -268,8 +273,11 @@ mod _lzma {
268
273
}
269
274
270
275
fn int_to_check ( check : i32 ) -> Option < Check > {
271
- match check {
272
- -1 | CHECK_NONE => Some ( Check :: None ) ,
276
+ if check == -1 {
277
+ return Some ( Check :: None ) ;
278
+ }
279
+ match check as EnumVal {
280
+ CHECK_NONE => Some ( Check :: None ) ,
273
281
CHECK_CRC32 => Some ( Check :: Crc32 ) ,
274
282
CHECK_CRC64 => Some ( Check :: Crc64 ) ,
275
283
CHECK_SHA256 => Some ( Check :: Sha256 ) ,
@@ -374,7 +382,7 @@ mod _lzma {
374
382
375
383
fn py_new ( _cls : PyTypeRef , args : Self :: Args , vm : & VirtualMachine ) -> PyResult {
376
384
let preset = args. preset . unwrap_or ( PRESET_DEFAULT ) ;
377
- if args. format != FORMAT_XZ && args. check != -1 && args. check != CHECK_NONE {
385
+ if args. format != FORMAT_XZ as _ && args. check != -1 && args. check != CHECK_NONE as _ {
378
386
return Err ( new_lzma_error (
379
387
"Integrity checks are only supported by FORMAT_XZ" ,
380
388
vm,
0 commit comments