openrtc 1.0.11

OpenRTC: a Rust-first P2P runtime for device discovery, signaling, and iroh/QUIC networking.
Documentation
pub(crate) const DEVICE_STALE_HEARTBEAT_MS: i64 = 300_000;
pub(crate) const DEVICE_OFFLINE_RETENTION_MS: i64 = 30 * 24 * 60 * 60 * 1000;

pub(crate) fn parse_millis(value: Option<&serde_json::Value>) -> Option<i64> {
    match value {
        Some(serde_json::Value::Number(number)) => number.as_i64(),
        Some(serde_json::Value::String(raw)) => parse_millis_string(raw),
        _ => None,
    }
}

fn parse_millis_string(raw: &str) -> Option<i64> {
    if let Ok(parsed) = raw.parse::<i64>() {
        return Some(parsed);
    }

    #[cfg(target_arch = "wasm32")]
    {
        let millis = js_sys::Date::parse(raw);
        if millis.is_finite() {
            return Some(millis as i64);
        }
    }

    #[cfg(not(target_arch = "wasm32"))]
    {
        if let Ok(parsed) = chrono::DateTime::parse_from_rfc3339(raw) {
            return Some(parsed.timestamp_millis());
        }
    }

    None
}