#![allow(warnings)] use anyhow::Error; use sdk_common::crypto::AnkSharedSecret; use sdk_common::network::CachedMessage; use serde::{Deserialize, Serialize}; use std::collections::{HashMap, HashSet}; use std::fmt::Debug; use std::sync::{Mutex, MutexGuard, OnceLock}; use tsify::Tsify; pub mod api; mod images; mod peers; mod process; mod user; mod wallet; pub static CACHEDMESSAGES: OnceLock>> = OnceLock::new(); pub fn lock_messages() -> Result>, Error> { CACHEDMESSAGES .get_or_init(|| Mutex::new(vec![])) .lock_anyhow() } pub(crate) trait MutexExt { fn lock_anyhow(&self) -> Result, Error>; } impl MutexExt for Mutex { fn lock_anyhow(&self) -> Result, Error> { self.lock() .map_err(|e| Error::msg(format!("Failed to lock: {}", e))) } }