Skip to main content

corrosive_ecs_core/
lib.rs

1mod arch;
2#[cfg(feature = "build")]
3/// Used to create the engine at compile time.
4pub mod build;
5mod hierarchy;
6mod locked;
7mod locked_ref;
8mod r_arch;
9mod r#ref;
10mod res;
11mod reset;
12mod signal;
13mod state;
14mod trigger;
15
16
17/// Core functions for Corrosive ECS
18#[cfg(feature = "core")]
19pub mod ecs_core {
20
21    pub use crate::arch::*;
22    pub use crate::hierarchy::*;
23    pub use crate::locked::*;
24    pub use crate::locked_ref::*;
25    pub use crate::r#ref::*;
26    pub use crate::r_arch::*;
27    pub use crate::res::*;
28    pub use crate::reset::*;
29    pub use crate::signal::*;
30    pub use crate::state::*;
31    pub use crate::trigger::*;
32
33    /// A reference to a value that may or may not be expired.
34    /// Values that use `Locked`,`LockedRef`, `Ref` or `Member` use this to hold their values.
35    /// Removing these values will be `Expired`.
36    #[derive(Debug)]
37    pub enum Reference<T> {
38        Some(T),
39        Expired,
40    }
41
42    /// Input delta tile values use as input to tasks.
43    pub type DeltaTime<'a> = &'a f64;
44
45    /// Marks a component for using a task.
46    #[macro_export]
47    macro_rules! trait_for {
48        (trait $e:ty => $($z:ty),+ ) => {};
49    }
50}