1#![allow(missing_docs)]
2use std::time::SystemTime;
3
4use xuko_ecs::{Query, QueryFilter, World, component_id};
5
6fn main() {
7 const ENTIIES: u64 = 1_000_000;
8 let time = SystemTime::now();
9
10 let mut world = World::new();
11
12 #[allow(dead_code)]
13 struct Number(u64);
14
15 for n in 0..=ENTIIES {
16 let id = world.spawn();
17 world.get_entity_mut(id).unwrap().add(Number(n));
18 }
19
20 for e in &Query::query_world(
21 &world,
22 QueryFilter::new()
23 .with_requires(&[component_id!(Number)])
24 .with_func(Some(|id, world| {
25 world.get_entity(id).unwrap().get::<Number>().unwrap().0 % 147 == 0
26 })),
27 ) {
28 world.despawn(e);
29 }
30
31 println!(
32 "spawning and filtering {ENTIIES} entities took {}ms",
33 time.elapsed().unwrap().as_millis()
34 );
35}