gloo_console/
macros.rs

1/// Calls `console.clear()`
2#[macro_export]
3macro_rules! clear {
4    () => {
5        $crate::externs::clear();
6    };
7}
8
9/// Calls `console.assert()`
10#[macro_export]
11macro_rules! assert {
12    ($assertion:expr, $($arg:expr),+) => {
13       $crate::externs::assert($assertion, ::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
14    }
15}
16
17/// Calls `console.debug()`
18#[macro_export]
19macro_rules! debug {
20    ($($arg:expr),+) => {
21       $crate::externs::debug(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
22    }
23}
24
25/// Calls `console.dir()`
26/// ## Example
27/// ```no_run
28/// # use gloo_console::dir;
29/// # use js_sys::Array;
30/// dir!(Array::of2(&1.into(), &2.into()));
31/// ```
32#[macro_export]
33macro_rules! dir {
34    ($arg:expr) => {
35        $crate::externs::dir(&$crate::__macro::JsValue::from($arg));
36    };
37}
38
39/// Calls `console.dirxml()`
40/// ## Example
41/// ```no_run
42/// # use gloo_console::dirxml;
43/// # use js_sys::Array;
44/// dirxml!(Array::of2(&1.into(), &2.into()));
45/// ```
46#[macro_export]
47macro_rules! dirxml {
48    ($arg:expr) => {
49        $crate::externs::dirxml(&$crate::__macro::JsValue::from($arg));
50    };
51}
52
53/// Calls `console.error()`
54#[macro_export]
55macro_rules! error {
56    ($($arg:expr),+) => {
57       $crate::externs::error(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
58    }
59}
60
61/// Calls `console.group()`
62///
63/// In order to call `console.groupCollapsed`, prefix the arguments with `collapsed`.
64#[macro_export]
65macro_rules! group {
66    ($($arg:expr),+) => {
67       $crate::externs::group(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
68    };
69    (collapsed $($arg:expr),+) => {
70       $crate::externs::group_collapsed(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
71    };
72}
73
74/// Calls `console.groupEnd()`
75#[macro_export]
76macro_rules! group_end {
77    () => {
78        $crate::externs::group_end();
79    };
80}
81
82/// Calls `console.info()`
83#[macro_export]
84macro_rules! info {
85    ($($arg:expr),+) => {
86       $crate::externs::info(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
87    }
88}
89
90/// Calls `console.table()`
91///
92/// Since in most cases, this takes in an object, instead of, say a string literal/variable,
93/// we use [`serde`](https://serde.rs) to serialize the passed data object into
94/// [`JsValue`][wasm_bindgen::JsValue].
95///
96/// An `IntoIterator<Item = &str>` can be passed to specify the columns.
97#[macro_export]
98macro_rules! table {
99    ($data:expr) => {
100        $crate::externs::table_with_data($crate::__macro::JsValue::from($data));
101    };
102    ($data:expr, $columns:expr) => {
103        $crate::__macro::table_with_data_and_columns($data, $columns);
104    };
105}
106
107/// Calls `console.log()`
108#[macro_export]
109macro_rules! log {
110    ($($arg:expr),+) => {
111       $crate::externs::log(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
112    }
113}
114
115/// Calls `console.trace()`
116#[macro_export]
117macro_rules! trace {
118    ($($arg:expr),+) => {
119       $crate::externs::trace(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
120    }
121}
122
123/// Calls `console.warn()`
124#[macro_export]
125macro_rules! warn {
126    ($($arg:expr),+) => {
127       $crate::externs::warn(::std::boxed::Box::from([$($crate::__macro::JsValue::from($arg),)+]));
128    }
129}