lyra-engine/lyra-ecs/src/lib.rs

79 lines
1.2 KiB
Rust

extern crate self as lyra_ecs;
#[allow(unused_imports)]
pub(crate) mod lyra_engine {
pub(crate) mod ecs {
pub use super::super::*;
}
}
use std::ops::BitOr;
mod archetype;
pub use archetype::*;
mod entity;
pub use entity::*;
mod world;
pub use world::*;
mod command;
pub use command::*;
mod bundle;
pub use bundle::*;
mod component;
pub use component::*;
pub mod query;
//pub use query::*;
pub mod relation;
pub use relation::Relation;
mod component_info;
pub use component_info::*;
mod resource;
pub use resource::*;
pub mod system;
//pub use system::*;
mod tick;
pub use tick::*;
/// Implements Component for glam math types
#[cfg(feature = "math")]
pub mod math;
pub use lyra_ecs_derive::*;
pub use atomic_refcell::AtomicRef;
pub use atomic_refcell::AtomicRefMut;
#[cfg(test)]
mod tests;
#[derive(Clone, Copy, Hash, PartialEq, Eq, PartialOrd, Ord)]
pub enum Access {
None,
Read,
Write,
}
impl BitOr for Access {
type Output = Access;
fn bitor(self, rhs: Self) -> Self::Output {
if self == Access::Write || rhs == Access::Write {
Access::Write
} else if self == Access::Read || rhs == Access::Read {
Access::Read
} else {
Access::None
}
}
}