Omikron Connection

This commit is contained in:
Alex Emmet 2026-01-06 22:16:53 +01:00
commit 8d964bd9e5
5 changed files with 109 additions and 7 deletions

View file

@ -0,0 +1,27 @@
use once_cell::sync::Lazy;
use std::collections::HashMap;
use std::sync::Arc;
use tokio::sync::RwLock;
static USER_OMIKRON_MAP: Lazy<Arc<RwLock<HashMap<i64, i64>>>> =
Lazy::new(|| Arc::new(RwLock::new(HashMap::new())));
pub async fn track_user_omikron(user: i64, omikron: i64) {
let mut c = USER_OMIKRON_MAP.write().await;
c.insert(user, omikron);
}
pub async fn get_omikron_for_user(user: i64) -> Option<i64> {
let c = USER_OMIKRON_MAP.read().await;
c.get(&user).cloned()
}
pub async fn untrack_user(user: i64) {
let mut c = USER_OMIKRON_MAP.write().await;
c.remove(&user);
}
pub async fn untrack_by_omikron(omikron: i64) {
let mut c = USER_OMIKRON_MAP.write().await;
c.retain(|_, v| *v != omikron);
}