summaryrefslogtreecommitdiff
path: root/ecs/src/query/options.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ecs/src/query/options.rs')
-rw-r--r--ecs/src/query/options.rs59
1 files changed, 0 insertions, 59 deletions
diff --git a/ecs/src/query/options.rs b/ecs/src/query/options.rs
deleted file mode 100644
index 6318359..0000000
--- a/ecs/src/query/options.rs
+++ /dev/null
@@ -1,59 +0,0 @@
-use std::marker::PhantomData;
-
-use hashbrown::HashSet;
-
-use crate::component::Component;
-use crate::EntityComponent;
-
-/// Query options.
-pub trait Options
-{
- fn entity_filter(components: &[EntityComponent]) -> bool;
-}
-
-impl Options for ()
-{
- fn entity_filter(_components: &[EntityComponent]) -> bool
- {
- true
- }
-}
-
-pub struct With<ComponentT>
-where
- ComponentT: Component,
-{
- _pd: PhantomData<ComponentT>,
-}
-
-impl<ComponentT> Options for With<ComponentT>
-where
- ComponentT: Component,
-{
- fn entity_filter(components: &[EntityComponent]) -> bool
- {
- let ids_set = components
- .iter()
- .map(|component| component.id)
- .collect::<HashSet<_>>();
-
- ids_set.contains(&ComponentT::id())
- }
-}
-
-pub struct Not<OptionsT>
-where
- OptionsT: Options,
-{
- _pd: PhantomData<OptionsT>,
-}
-
-impl<OptionsT> Options for Not<OptionsT>
-where
- OptionsT: Options,
-{
- fn entity_filter(components: &[EntityComponent]) -> bool
- {
- !OptionsT::entity_filter(components)
- }
-}