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