#[allow(unused_imports)]
use devela::{_js_doc, _js_extern};
#[doc = crate::_tags!(runtime namespace)]
#[doc = crate::_doc_location!("lang/prog/ffi/js")]
#[derive(Debug)]
pub struct JsConsole;
#[rustfmt::skip]
#[cfg(not(feature = "safe_lang"))]
#[cfg(all(feature = "unsafe_ffi", not(windows)))]
#[cfg_attr(nightly_doc, doc(cfg(all(feature = "unsafe_ffi", target_arch = "wasm32"))))]
impl JsConsole {
#[doc = _js_doc!(console "clear")]
pub fn clear() { console_clear() }
#[doc = _js_doc!(console "debug")]
pub fn debug(text: &str) { unsafe { console_debug(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "error")]
pub fn error(text: &str) { unsafe { console_error(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "info")]
pub fn info(text: &str) { unsafe { console_info(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "log")]
pub fn log(text: &str) { unsafe { console_log(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "trace")]
pub fn trace() { console_trace(); }
#[doc = _js_doc!(console "warn")]
pub fn warn(text: &str) { unsafe { console_warn(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "count")]
pub fn count(label: &str) { unsafe { console_count(label.as_ptr(), label.len()); } }
#[doc = _js_doc!(console "countReset")]
pub fn count_reset(label: &str) {
unsafe { console_count_reset(label.as_ptr(), label.len()); } }
#[doc = _js_doc!(console "group")]
pub fn group(text: &str) { unsafe { console_group(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "groupCollapsed")]
pub fn group_collapsed(text: &str) {
unsafe { console_group_collapsed(text.as_ptr(), text.len()); } }
#[doc = _js_doc!(console "groupEnd")]
pub fn group_end() { console_group_end(); }
#[doc = _js_doc!(console "time")]
pub fn time(name: &str) { unsafe { console_time(name.as_ptr(), name.len()); } }
#[doc = _js_doc!(console "timeEnd")]
pub fn time_end(name: &str) { unsafe { console_time_end(name.as_ptr(), name.len()); } }
#[doc = _js_doc!(console "timeLog")]
pub fn time_log(name: &str) { unsafe { console_time_log(name.as_ptr(), name.len()); } }
}
_js_extern! {
[ module: "api_console" ]
safe fn console_clear();
unsafe fn console_debug(str_ptr: *const u8, str_len: usize);
unsafe fn console_error(str_ptr: *const u8, str_len: usize);
unsafe fn console_info(str_ptr: *const u8, str_len: usize);
unsafe fn console_log(str_ptr: *const u8, str_len: usize);
safe fn console_trace();
unsafe fn console_warn(str_ptr: *const u8, str_len: usize);
unsafe fn console_count(str_ptr: *const u8, str_len: usize);
unsafe fn console_count_reset(str_ptr: *const u8, str_len: usize);
unsafe fn console_group(str_ptr: *const u8, str_len: usize);
unsafe fn console_group_collapsed(str_ptr: *const u8, str_len: usize);
safe fn console_group_end();
unsafe fn console_time(str_ptr: *const u8, str_len: usize);
unsafe fn console_time_end(str_ptr: *const u8, str_len: usize);
unsafe fn console_time_log(str_ptr: *const u8, str_len: usize);
}