#[derive(Clone, Copy)]
enum OpenRtcLogLevel {
Info,
Warn,
Error,
}
fn emit(level: OpenRtcLogLevel, message: &str) {
#[cfg(target_arch = "wasm32")]
{
let value = wasm_bindgen::JsValue::from_str(message);
match level {
OpenRtcLogLevel::Info => web_sys::console::log_1(&value),
OpenRtcLogLevel::Warn => web_sys::console::warn_1(&value),
OpenRtcLogLevel::Error => web_sys::console::error_1(&value),
}
}
#[cfg(not(target_arch = "wasm32"))]
{
match level {
OpenRtcLogLevel::Info => println!("{}", message),
OpenRtcLogLevel::Warn | OpenRtcLogLevel::Error => eprintln!("{}", message),
}
}
}
pub(crate) fn log_info(message: &str) {
emit(OpenRtcLogLevel::Info, message);
}
pub(crate) fn log_warn(message: &str) {
emit(OpenRtcLogLevel::Warn, message);
}
pub(crate) fn log_error(message: &str) {
emit(OpenRtcLogLevel::Error, message);
}
#[cfg(target_arch = "wasm32")]
pub(crate) fn env_flag_enabled(_name: &str) -> bool {
false
}
#[cfg(not(target_arch = "wasm32"))]
pub(crate) fn env_flag_enabled(name: &str) -> bool {
std::env::var(name)
.map(|value| {
let normalized = value.trim().to_ascii_lowercase();
normalized == "1" || normalized == "true" || normalized == "yes"
})
.unwrap_or(false)
}