oxygengine_backend_web/
log.rs

1use core::log::{Log, Logger};
2use wasm_bindgen::prelude::*;
3
4#[wasm_bindgen]
5extern "C" {
6    #[wasm_bindgen(js_namespace = console, js_name = log)]
7    pub fn console_log(s: &str);
8}
9
10#[wasm_bindgen]
11extern "C" {
12    #[wasm_bindgen(js_namespace = console, js_name = warn)]
13    pub fn console_warn(s: &str);
14}
15
16#[wasm_bindgen]
17extern "C" {
18    #[wasm_bindgen(js_namespace = console, js_name = error)]
19    pub fn console_error(s: &str);
20}
21
22#[wasm_bindgen]
23extern "C" {
24    #[wasm_bindgen(js_namespace = console, js_name = debug)]
25    pub fn console_debug(s: &str);
26}
27
28#[wasm_bindgen]
29extern "C" {
30    #[wasm_bindgen(js_namespace = console, js_name = profile)]
31    pub fn console_profile(s: &str);
32}
33
34#[wasm_bindgen]
35extern "C" {
36    #[wasm_bindgen(js_namespace = console, js_name = profileEnd)]
37    pub fn console_profile_end(s: &str);
38}
39
40pub struct WebLogger;
41
42impl Logger for WebLogger {
43    fn log(&mut self, mode: Log, message: String) {
44        match mode {
45            Log::Info => console_log(&format!("[INFO] {}", message)),
46            Log::Warning => console_warn(&format!("[WARNING] {}", message)),
47            Log::Error => console_error(&format!("[ERROR] {}", message)),
48            Log::Debug => console_debug(&format!("[DEBUG] {}", message)),
49        }
50    }
51}