openrtc 1.0.1

OpenRTC: a Rust-first P2P runtime for device discovery, signaling, and iroh/QUIC networking.
Documentation
#[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)
}