1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#[macro_export]
macro_rules! log {
() => {
unsafe { $crate::web_sys::console::log_0() };
};
( $t0:expr ) => {
unsafe { $crate::web_sys::console::log_1(&$t0.into()) };
};
( $t0:expr, $t1:expr ) => {
unsafe {
$crate::web_sys::console::log_2(
&$t0.into(),
&$t1.into(),
)
};
};
( $t0:expr, $t1:expr, $t2:expr ) => {
unsafe {
$crate::web_sys::console::log_3(
&$t0.into(),
&$t1.into(),
&$t2.into(),
)
};
};
( $t0:expr, $t1:expr, $t2:expr, $t3:expr) => {
unsafe {
$crate::web_sys::console::log_4(
&$t0.into(),
&$t1.into(),
&$t2.into(),
&$t3.into(),
)
};
};
( $t0:expr, $t1:expr, $t2:expr, $t3:expr, $t4:expr) => {
unsafe {
$crate::web_sys::console::log_5(
&$t0.into(),
&$t1.into(),
&$t2.into(),
&$t3.into(),
&$t4.into(),
)
};
};
( $t0:expr, $t1:expr, $t2:expr, $t3:expr, $t4:expr, $t5:expr) => {
unsafe {
$crate::web_sys::console::log_6(
&$t0.into(),
&$t1.into(),
&$t2.into(),
&$t3.into(),
&$t4.into(),
&$t5.into(),
)
};
};
( $t0:expr, $t1:expr, $t2:expr, $t3:expr, $t4:expr, $t5:expr, $t6:expr) => {
unsafe {
$crate::web_sys::console::log_7(
&$t0.into(),
&$t1.into(),
&$t2.into(),
&$t3.into(),
&$t4.into(),
&$t5.into(),
&$t6.into(),
)
};
};
}
#[allow(unused_macros)]
macro_rules! flog {
( $( $t:tt )* ) => {
unsafe{$crate::web_sys::console::log_1(&format!( $( $t )* ).into())};
}
}
pub fn js_value<T: serde::Serialize>(
value: T,
) -> wasm_bindgen::JsValue {
wasm_bindgen::JsValue::from_serde(&value)
.expect("failed to create a js_value")
}