1#![warn(missing_docs)]
4#![cfg_attr(doc, allow(unknown_lints))]
6#![deny(rustdoc::all)]
7
8use type_ulid::TypeUlid;
9
10pub mod prelude {
12 pub use crate::*;
13}
14
15pub trait IntoBevy<To> {
17 fn into_bevy(self) -> To;
19}
20
21#[derive(TypeUlid, Default)]
29#[ulid = "01GNX5CJAAHS31DA9HXZ2CF74B"]
30pub struct BevyWorld(pub Option<bevy_ecs::world::World>);
31
32impl Clone for BevyWorld {
33 fn clone(&self) -> Self {
34 if self.0.is_some() {
35 panic!("BevyWorld may not be cloned.");
36 } else {
37 Self(None)
38 }
39 }
40}
41
42impl std::ops::Deref for BevyWorld {
43 type Target = Option<bevy_ecs::world::World>;
44
45 fn deref(&self) -> &Self::Target {
46 &self.0
47 }
48}
49
50impl std::ops::DerefMut for BevyWorld {
51 fn deref_mut(&mut self) -> &mut Self::Target {
52 &mut self.0
53 }
54}