openrtc/coordination/
mod.rs1pub mod room;
2
3#[cfg(target_arch = "wasm32")]
4pub(crate) fn now_millis_u64() -> u64 {
5 js_sys::Date::now() as u64
6}
7
8#[cfg(target_arch = "wasm32")]
9pub(crate) fn now_timestamp_rfc3339() -> String {
10 js_sys::Date::new_0()
11 .to_iso_string()
12 .as_string()
13 .unwrap_or_else(|| "1970-01-01T00:00:00.000Z".to_string())
14}
15
16#[cfg(target_arch = "wasm32")]
17pub(crate) fn timestamp_rfc3339_from_millis(millis: i64) -> String {
18 js_sys::Date::new(&wasm_bindgen::JsValue::from_f64(millis as f64))
19 .to_iso_string()
20 .as_string()
21 .unwrap_or_else(|| "1970-01-01T00:00:00.000Z".to_string())
22}
23
24#[cfg(not(target_arch = "wasm32"))]
25pub(crate) fn now_millis_u64() -> u64 {
26 std::time::SystemTime::now()
27 .duration_since(std::time::UNIX_EPOCH)
28 .unwrap_or_default()
29 .as_millis() as u64
30}
31
32#[cfg(not(target_arch = "wasm32"))]
33pub(crate) fn now_timestamp_rfc3339() -> String {
34 let now = std::time::SystemTime::now();
35 let dt: chrono::DateTime<chrono::Utc> = now.into();
36 dt.to_rfc3339_opts(chrono::SecondsFormat::Millis, true)
37}
38
39#[cfg(not(target_arch = "wasm32"))]
40pub(crate) fn timestamp_rfc3339_from_millis(millis: i64) -> String {
41 chrono::DateTime::<chrono::Utc>::from_timestamp_millis(millis)
42 .unwrap_or(chrono::DateTime::<chrono::Utc>::UNIX_EPOCH)
43 .to_rfc3339_opts(chrono::SecondsFormat::Millis, true)
44}