From 141044aae7e82a93171d53b93776edb9491d2e1e Mon Sep 17 00:00:00 2001 From: Carter Anderson Date: Wed, 22 Jul 2020 16:19:27 -0700 Subject: [PATCH] ecs: publicly expose Added/Changed and inline some things --- crates/bevy_ecs/hecs/src/lib.rs | 4 +++- crates/bevy_ecs/hecs/src/query.rs | 4 ++++ crates/bevy_ecs/src/lib.rs | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/bevy_ecs/hecs/src/lib.rs b/crates/bevy_ecs/hecs/src/lib.rs index 4bafd8f9c4..a76b98c00d 100644 --- a/crates/bevy_ecs/hecs/src/lib.rs +++ b/crates/bevy_ecs/hecs/src/lib.rs @@ -80,7 +80,9 @@ pub use borrow::{EntityRef, Ref, RefMut}; pub use bundle::{Bundle, DynamicBundle, MissingComponent}; pub use entities::{Entity, Location, NoSuchEntity}; pub use entity_builder::{BuiltEntity, EntityBuilder}; -pub use query::{Access, BatchedIter, Query, QueryBorrow, QueryIter, With, Without, Mut, Mutated}; +pub use query::{ + Access, Added, BatchedIter, Changed, Mut, Mutated, Query, QueryBorrow, QueryIter, With, Without, +}; pub use query_one::QueryOne; pub use world::{ArchetypesGeneration, Component, ComponentError, Iter, SpawnBatchIter, World}; diff --git a/crates/bevy_ecs/hecs/src/query.rs b/crates/bevy_ecs/hecs/src/query.rs index 65f5da20ad..63d9b30edd 100644 --- a/crates/bevy_ecs/hecs/src/query.rs +++ b/crates/bevy_ecs/hecs/src/query.rs @@ -229,6 +229,7 @@ pub struct Mutated<'a, T> { impl<'a, T: Component> Deref for Mutated<'a, T> { type Target = T; + #[inline] fn deref(&self) -> &T { self.value } @@ -290,6 +291,7 @@ pub struct Added<'a, T> { impl<'a, T: Component> Deref for Added<'a, T> { type Target = T; + #[inline] fn deref(&self) -> &T { self.value } @@ -352,6 +354,7 @@ pub struct Changed<'a, T> { impl<'a, T: Component> Deref for Changed<'a, T> { type Target = T; + #[inline] fn deref(&self) -> &T { self.value } @@ -378,6 +381,7 @@ impl<'a, T: Component> Fetch<'a> for FetchChanged { fn borrow(archetype: &Archetype) { archetype.borrow::(); } + unsafe fn get(archetype: &'a Archetype, offset: usize) -> Option { archetype .get_with_added_and_mutated::() diff --git a/crates/bevy_ecs/src/lib.rs b/crates/bevy_ecs/src/lib.rs index 72c66348ca..171fe1ae1c 100644 --- a/crates/bevy_ecs/src/lib.rs +++ b/crates/bevy_ecs/src/lib.rs @@ -16,6 +16,6 @@ pub mod prelude { Commands, IntoForEachSystem, IntoQuerySystem, IntoThreadLocalSystem, Query, System, }, world::WorldBuilderSource, - Bundle, Mutated, Component, Entity, Ref, RefMut, With, Without, World, + Added, Bundle, Changed, Component, Entity, Mutated, Ref, RefMut, With, Without, World, }; }