webui-rs 0.1.0

A lightweight, idiomatic Rust wrapper for WebUI.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use std::{
    collections::HashMap,
    sync::{LazyLock, Mutex, Weak},
};

use crate::{Window, WindowInner};

pub(crate) static CONTEXT: LazyLock<Mutex<HashMap<usize, Weak<WindowInner>>>> =
    LazyLock::new(|| Default::default());

pub(crate) fn get_window(id: usize) -> Option<Window> {
    CONTEXT
        .lock()
        .unwrap()
        .get(&id)
        .and_then(|x| x.upgrade())
        .map(|inner| Window { inner })
}