hakuban 0.8.5

Data-object sharing library
Documentation
#![allow(clippy::not_unsafe_ptr_arg_deref)]

use log::{trace, Level};
use wasm_bindgen::prelude::*;

use super::wasm_result::{WasmResult, WasmResultStatus};

#[cfg(feature = "console_error_panic_hook")]
extern crate console_error_panic_hook;

#[wasm_bindgen]
pub fn hakuban_logger_initialize(default_log_level: String) -> WasmResult {
	#[cfg(feature = "console_error_panic_hook")]
	console_error_panic_hook::set_once();

	if let Err(error) = console_log::init_with_level(match default_log_level.as_str() {
		"error" => Level::Error,
		"warn" => Level::Warn,
		"info" => Level::Info,
		"debug" => Level::Debug,
		"trace" => Level::Trace,
		other => {
			return WasmResult::error(
				WasmResultStatus::InvalidLogLevel,
				format!("Invalid log level: {:?}. Valid levels are: error, warn, info, debug, trace.", other),
			);
		}
	}) {
		WasmResult::error(WasmResultStatus::LoggerInitializationError, error)
	} else {
		trace!("Logger initialized");
		WasmResult::ok()
	}
}