1
1
#![ deny( clippy:: all) ]
2
2
#![ allow( clippy:: nonstandard_macro_braces) ]
3
3
4
- # [ macro_use ]
5
- extern crate napi_derive ;
4
+ /// Explicit extern crate to use allocator.
5
+ extern crate global_alloc ;
6
6
7
7
use crc32c:: crc32c_append;
8
8
use crc32fast:: Hasher ;
9
9
use napi:: { CallContext , JsBuffer , JsNumber , JsObject , Result } ;
10
- use std:: convert:: TryInto ;
11
-
12
- #[ cfg( all(
13
- target_arch = "x86_64" ,
14
- not( target_env = "musl" ) ,
15
- not( debug_assertions)
16
- ) ) ]
17
- #[ global_allocator]
18
- static ALLOC : mimalloc:: MiMalloc = mimalloc:: MiMalloc ;
10
+ use napi_derive:: * ;
19
11
20
12
#[ module_exports]
21
13
fn init ( mut exports : JsObject ) -> Result < ( ) > {
@@ -27,16 +19,16 @@ fn init(mut exports: JsObject) -> Result<()> {
27
19
#[ js_function( 2 ) ]
28
20
fn crc32c ( ctx : CallContext ) -> Result < JsNumber > {
29
21
let input_data = ctx. get :: < JsBuffer > ( 0 ) ?. into_value ( ) ?;
30
- let init_state = ctx. get :: < JsNumber > ( 1 ) ?;
31
- let result = crc32c_append ( init_state. try_into ( ) ? , & input_data) ;
22
+ let init_state = ctx. get :: < JsNumber > ( 1 ) ?. get_uint32 ( ) ? ;
23
+ let result = crc32c_append ( init_state, & input_data) ;
32
24
ctx. env . create_uint32 ( result)
33
25
}
34
26
35
27
#[ js_function( 2 ) ]
36
28
fn crc32 ( ctx : CallContext ) -> Result < JsNumber > {
37
29
let input_data = ctx. get :: < JsBuffer > ( 0 ) ?. into_value ( ) ?;
38
- let init_state = ctx. get :: < JsNumber > ( 1 ) ?;
39
- let mut hasher = Hasher :: new_with_initial ( init_state. try_into ( ) ? ) ;
30
+ let init_state = ctx. get :: < JsNumber > ( 1 ) ?. get_uint32 ( ) ? ;
31
+ let mut hasher = Hasher :: new_with_initial ( init_state) ;
40
32
hasher. update ( & input_data) ;
41
33
ctx. env . create_uint32 ( hasher. finalize ( ) )
42
34
}
0 commit comments