oxygengine_backend_web/
closure.rs

1use std::any::Any;
2use wasm_bindgen::prelude::*;
3
4#[derive(Debug, Default)]
5pub struct WebClosure(Option<Box<dyn Any>>);
6
7impl WebClosure {
8    pub fn acquire<T: ?Sized + 'static>(closure: Closure<T>) -> Self {
9        Self(Some(Box::new(closure)))
10    }
11
12    pub fn release(&mut self) {
13        self.0 = None;
14    }
15}
16
17#[cfg(feature = "web")]
18unsafe impl Send for WebClosure {}
19#[cfg(feature = "web")]
20unsafe impl Sync for WebClosure {}