use std::{collections::HashMap, sync::Arc};
use tokio::sync::Mutex;
use uuid::Uuid;
pub type SessionRegistry = Arc<Mutex<HashMap<Uuid, String>>>;
#[must_use]
pub fn new_session_registry() -> SessionRegistry {
Arc::new(Mutex::new(HashMap::new()))
}
#[cfg(test)]
mod tests {
use uuid::Uuid;
use super::new_session_registry;
#[test]
fn new_session_registry_starts_empty() {
let reg = new_session_registry();
assert!(reg.blocking_lock().is_empty());
}
#[test]
fn new_session_registry_insert_and_lookup() {
let reg = new_session_registry();
let uuid = Uuid::new_v4();
drop(reg.blocking_lock().insert(uuid, "alice".to_owned()));
assert!(reg.blocking_lock().contains_key(&uuid));
}
}