use super::udp_listener::UdpListener;
use std::cell::{UnsafeCell};
use std::sync::Arc;
pub struct UdpServerStore(pub UnsafeCell<Option<Arc<dyn UdpListener>>>);
unsafe impl Send for UdpServerStore {}
unsafe impl Sync for UdpServerStore {}
impl UdpServerStore {
pub fn get(&self) -> Option<Arc<dyn UdpListener>> {
unsafe {
match *self.0.get() {
None => None,
Some(ref mut v) => Some(v.clone()),
}
}
}
pub fn set(&self, v: Arc<dyn UdpListener>) {
unsafe {
*self.0.get() = Some(v);
}
}
}