Add query ctor
This commit is contained in:
parent
7def5ee520
commit
abbbfb359d
2 changed files with 16 additions and 10 deletions
|
@ -74,6 +74,14 @@ where
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<C, F: CheckFilter> Query<C, F> {
|
impl<C, F: CheckFilter> Query<C, F> {
|
||||||
|
pub fn new(entity: Entity, c: C) -> Self {
|
||||||
|
Self {
|
||||||
|
entity,
|
||||||
|
c,
|
||||||
|
filter: PhantomData,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn entity(&self) -> Entity {
|
pub fn entity(&self) -> Entity {
|
||||||
self.entity
|
self.entity
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,19 +93,17 @@ impl Query {
|
||||||
let component_name = &component_names[0];
|
let component_name = &component_names[0];
|
||||||
|
|
||||||
quote! {
|
quote! {
|
||||||
let #query_ident = Query {
|
let #query_ident = Query::new(
|
||||||
entity: #entity_ident,
|
#entity_ident,
|
||||||
c: unsafe { #component_name.as_mut() },
|
unsafe { #component_name.as_mut() },
|
||||||
filter: PhantomData,
|
);
|
||||||
};
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
quote! {
|
quote! {
|
||||||
let #query_ident = Query {
|
let #query_ident = Query::new(
|
||||||
entity: #entity_ident,
|
#entity_ident,
|
||||||
c: unsafe { ( #( #component_names.as_mut(), )* ) },
|
unsafe { ( #( #component_names.as_mut(), )* ) },
|
||||||
filter: PhantomData,
|
);
|
||||||
};
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
query_ident,
|
query_ident,
|
||||||
|
|
Loading…
Reference in a new issue