1
+ use wasm_bindgen:: prelude:: * ;
2
+ use wasm_bindgen_test:: * ;
3
+
4
+ #[ wasm_bindgen( module = "tests/wasm/arrays.js" ) ]
5
+ extern "C" {
6
+ fn js_ascending_array ( ) ;
7
+ fn js_product ( ) ;
8
+ }
9
+
10
+ #[ wasm_bindgen_test]
11
+ fn rust_ascending_array ( ) {
12
+ js_ascending_array ( ) ;
13
+ }
14
+
15
+ #[ wasm_bindgen_test]
16
+ fn rust_product ( ) {
17
+ js_product ( ) ;
18
+ }
19
+
20
+ macro_rules! array_impls {
21
+ ( $( $N: expr $ascending_array_name: ident $product_name: ident) ,+) => {
22
+ $(
23
+ #[ wasm_bindgen]
24
+ pub fn $ascending_array_name( ) -> [ i32 ; $N] {
25
+ let mut array = [ 0 ; $N] ;
26
+ array. iter_mut( ) . enumerate( ) . for_each( |( idx, value) | * value = idx) ;
27
+ array
28
+ }
29
+
30
+ #[ wasm_bindgen]
31
+ pub fn $product_name( array: [ i32 ; $N] ) -> i32 {
32
+ from_js. iter( ) . product( )
33
+ }
34
+ ) +
35
+ }
36
+ }
37
+
38
+ array_impls ! (
39
+ 0 asceding_array0 product0,
40
+ 1 asceding_array1 product1,
41
+ 2 asceding_array2 product2,
42
+ 3 asceding_array3 product3,
43
+ 4 asceding_array4 product4,
44
+ 5 asceding_array5 product5,
45
+ 6 asceding_array6 product6,
46
+ 7 asceding_array7 product7,
47
+ 8 asceding_array8 product8,
48
+ 9 asceding_array9 product9,
49
+ 10 asceding_array10 product10,
50
+ 11 asceding_array11 product11,
51
+ 12 asceding_array12 product12,
52
+ 13 asceding_array13 product13,
53
+ 14 asceding_array14 product14,
54
+ 15 asceding_array15 product15,
55
+ 16 asceding_array16 product16,
56
+ 17 asceding_array17 product17,
57
+ 18 asceding_array18 product18,
58
+ 19 asceding_array19 product19,
59
+ 20 asceding_array20 product20,
60
+ 21 asceding_array21 product21,
61
+ 22 asceding_array22 product22,
62
+ 23 asceding_array23 product23,
63
+ 24 asceding_array24 product24,
64
+ 25 asceding_array25 product25,
65
+ 26 asceding_array26 product26,
66
+ 27 asceding_array27 product27,
67
+ 28 asceding_array28 product28,
68
+ 29 asceding_array29 product29,
69
+ 30 asceding_array30 product30,
70
+ 31 asceding_array31 product31,
71
+ 32 asceding_array32 product32,
72
+ ) ;
0 commit comments