#![no_std]
#[cfg(feature = "std")]
extern crate std;
extern crate alloc;
#[macro_export]
macro_rules! smaller_tuples_too {
($m: ident, $ty: ident) => {
$m!{$ty}
$m!{}
};
($m: ident, $ty: ident, $($tt: ident),*) => {
$m!{$ty, $($tt),*}
smaller_tuples_too!{$m, $($tt),*}
};
}
mod access;
mod archetype;
mod borrow;
mod bundle;
mod entities;
mod entity_builder;
mod query;
#[cfg(feature = "serde")]
mod serde;
mod world;
pub use access::{ArchetypeComponent, QueryAccess, TypeAccess};
pub use archetype::{Archetype, TypeState};
pub use borrow::{AtomicBorrow, Ref, RefMut};
pub use bundle::{Bundle, DynamicBundle, MissingComponent};
pub use entities::{Entity, EntityReserver, Location, NoSuchEntity};
pub use entity_builder::{BuiltEntity, EntityBuilder};
pub use query::{
Added, Batch, BatchedIter, Changed, Mut, Mutated, Or, Query, QueryIter, ReadOnlyFetch, With,
Without,
};
pub use world::{ArchetypesGeneration, Component, ComponentError, SpawnBatchIter, World};
#[doc(hidden)]
pub use archetype::TypeInfo;
#[doc(hidden)]
pub use bevy_utils;
#[cfg(feature = "macros")]
#[doc(hidden)]
pub use lazy_static;
#[doc(hidden)]
pub use query::Fetch;
#[cfg(feature = "macros")]
pub use bevy_hecs_macros::{impl_query_set, Bundle};