yew_stdweb/services/
console.rs1use cfg_if::cfg_if;
4use cfg_match::cfg_match;
5cfg_if! {
6 if #[cfg(feature = "std_web")] {
7 #[allow(unused_imports)]
8 use stdweb::{_js_impl, js};
9 } else if #[cfg(feature = "web_sys")] {
10 use wasm_bindgen::JsValue;
11 use web_sys::console;
12 }
13}
14
15#[derive(Default, Debug)]
18pub struct ConsoleService {}
19
20impl ConsoleService {
21 pub fn log(message: &str) {
25 cfg_match! {
26 feature = "std_web" => js! { @(no_return) console.log(@{message}); },
27 feature = "web_sys" => console::log_1(&JsValue::from_str(message)),
28 };
29 }
30
31 pub fn warn(message: &str) {
35 cfg_match! {
36 feature = "std_web" => js! { @(no_return) console.warn(@{message}); },
37 feature = "web_sys" => console::warn_1(&JsValue::from_str(message)),
38 };
39 }
40
41 pub fn info(message: &str) {
45 cfg_match! {
46 feature = "std_web" => js! { @(no_return) console.info(@{message}); },
47 feature = "web_sys" => console::info_1(&JsValue::from_str(message)),
48 };
49 }
50
51 pub fn error(message: &str) {
55 cfg_match! {
56 feature = "std_web" => js! { @(no_return) console.error(@{message}); },
57 feature = "web_sys" => console::error_1(&JsValue::from_str(message)),
58 };
59 }
60
61 pub fn debug(message: &str) {
64 cfg_match! {
65 feature = "std_web" => js! { @(no_return) console.debug(@{message}); },
66 feature = "web_sys" => console::debug_1(&JsValue::from_str(message)),
67 };
68 }
69
70 pub fn count_named(name: &str) {
73 cfg_match! {
74 feature = "std_web" => js! { @(no_return) console.count(@{name}); },
75 feature = "web_sys" => console::count_with_label(name),
76 };
77 }
78
79 pub fn count() {
82 cfg_match! {
83 feature = "std_web" => js! { @(no_return) console.count(); },
84 feature = "web_sys" => console::count(),
85 };
86 }
87
88 pub fn time_named(name: &str) {
91 cfg_match! {
92 feature = "std_web" => js! { @(no_return) console.time(@{name}); },
93 feature = "web_sys" => console::time_with_label(name),
94 };
95 }
96
97 pub fn time_named_end(name: &str) {
100 cfg_match! {
101 feature = "std_web" => js! { @(no_return) console.timeEnd(@{name}); },
102 feature = "web_sys" => console::time_end_with_label(name),
103 };
104 }
105
106 pub fn time() {
109 cfg_match! {
110 feature = "std_web" => js! { @(no_return) console.time(); },
111 feature = "web_sys" => console::time(),
112 };
113 }
114 pub fn time_end() {
117 cfg_match! {
118 feature = "std_web" => js! { @(no_return) console.timeEnd(); },
119 feature = "web_sys" => console::time_end(),
120 };
121 }
122
123 pub fn clear() {
126 cfg_match! {
127 feature = "std_web" => js! { @(no_return) console.clear(); },
128 feature = "web_sys" => console::clear(),
129 };
130 }
131
132 pub fn group() {
135 cfg_match! {
136 feature = "std_web" => js! { @(no_return) console.group(); },
137 feature = "web_sys" => console::group_0(),
138 };
139 }
140
141 pub fn group_collapsed() {
144 cfg_match! {
145 feature = "std_web" => js! { @(no_return) console.groupCollapsed(); },
146 feature = "web_sys" => console::group_collapsed_0(),
147 };
148 }
149
150 pub fn group_end() {
153 cfg_match! {
154 feature = "std_web" => js! { @(no_return) console.groupEnd(); },
155 feature = "web_sys" => console::group_end(),
156 };
157 }
158
159 pub fn trace() {
163 cfg_match! {
164 feature = "std_web" => js! { @(no_return) console.trace(); },
165 feature = "web_sys" => console::trace_0(),
166 };
167 }
168
169 pub fn assert(condition: bool, message: &str) {
172 cfg_match! {
173 feature = "std_web" => js! { @(no_return) console.assert(@{condition}, @{message}); },
174 feature = "web_sys" => console::assert_with_condition_and_data_1(condition, &String::from(message).into()),
175 };
176 }
177}