use bevy::prelude::{Resource, World};
#[derive(Resource, Clone, Copy)]
pub struct ImmediateWorldPtr(pub(crate) *mut World);
impl ImmediateWorldPtr {
#[inline]
pub fn new(ptr: *mut World) -> Self {
Self(ptr)
}
#[inline]
pub fn set(&mut self, ptr: *mut World) {
self.0 = ptr;
}
#[inline]
pub fn as_world(&self) -> &World {
unsafe { &*self.0 }
}
#[inline]
pub fn as_world_mut(&self) -> &mut World {
unsafe { &mut *self.0 }
}
}
unsafe impl Send for ImmediateWorldPtr {}
unsafe impl Sync for ImmediateWorldPtr {}