From abbbfb359d3a611d65e12d27eb8321bc70ac1ebd Mon Sep 17 00:00:00 2001 From: hodasemi Date: Tue, 15 Apr 2025 10:29:00 +0200 Subject: [PATCH] Add query ctor --- ecs/src/updates.rs | 8 ++++++++ update_macro_base/src/lib.rs | 18 ++++++++---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/ecs/src/updates.rs b/ecs/src/updates.rs index 917cba5..28310a2 100644 --- a/ecs/src/updates.rs +++ b/ecs/src/updates.rs @@ -74,6 +74,14 @@ where } impl Query { + pub fn new(entity: Entity, c: C) -> Self { + Self { + entity, + c, + filter: PhantomData, + } + } + pub fn entity(&self) -> Entity { self.entity } diff --git a/update_macro_base/src/lib.rs b/update_macro_base/src/lib.rs index 9d5dfb4..1a851f8 100644 --- a/update_macro_base/src/lib.rs +++ b/update_macro_base/src/lib.rs @@ -93,19 +93,17 @@ impl Query { let component_name = &component_names[0]; quote! { - let #query_ident = Query { - entity: #entity_ident, - c: unsafe { #component_name.as_mut() }, - filter: PhantomData, - }; + let #query_ident = Query::new( + #entity_ident, + unsafe { #component_name.as_mut() }, + ); } } else { quote! { - let #query_ident = Query { - entity: #entity_ident, - c: unsafe { ( #( #component_names.as_mut(), )* ) }, - filter: PhantomData, - }; + let #query_ident = Query::new( + #entity_ident, + unsafe { ( #( #component_names.as_mut(), )* ) }, + ); } }, query_ident,