diff --git a/Cargo.toml b/Cargo.toml index 2f8ea3c..f8c4b68 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,6 +25,9 @@ default = ["std"] std = ["rustc-hash/std"] parallel = ["std", "dep:rayon"] +[lints.rust] +missing-docs = "warn" + [lints.clippy] pedantic = { level = "warn", priority = -1 } cast-possible-truncation = "allow" @@ -32,4 +35,5 @@ missing-errors-doc = "allow" missing-panics-doc = "allow" missing-safety_doc = "allow" module-name-repetitions = "allow" +needless-doctest-main = "allow" wildcard-imports = "allow" diff --git a/src/lib.rs b/src/lib.rs index b52579c..97ca56b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -2,6 +2,7 @@ //! based on [sparse sets](https://www.geeksforgeeks.org/sparse-set/). //! //! # Example +//! //! ```rust //! use sparsey::World; //! diff --git a/src/query/query_all.rs b/src/query/query_all.rs index 4a49b80..cdbca84 100644 --- a/src/query/query_all.rs +++ b/src/query/query_all.rs @@ -44,6 +44,54 @@ where } } +impl<'a, G, E> QueryAll<'a, G, (), E> +where + G: Query, + E: Query, +{ + /// Applies an "include" filter to the query. + pub fn include(self) -> QueryAll<'a, G, I, E> + where + I: Query, + { + let (include, include_info) = I::borrow_with_group_info(self.world); + + QueryAll { + world: self.world, + get: self.get, + include, + exclude: self.exclude, + get_info: self.get_info, + include_info, + exclude_info: self.exclude_info, + } + } +} + +impl<'a, G, I> QueryAll<'a, G, I, ()> +where + G: Query, + I: Query, +{ + /// Applies an "exclude" filter to the query. + pub fn exclude(self) -> QueryAll<'a, G, I, E> + where + E: Query, + { + let (exclude, exclude_info) = E::borrow_with_group_info(self.world); + + QueryAll { + world: self.world, + get: self.get, + include: self.include, + exclude, + get_info: self.get_info, + include_info: self.include_info, + exclude_info, + } + } +} + impl<'a, G, I, E> QueryAll<'a, G, I, E> where G: Query, @@ -163,52 +211,6 @@ where } } -impl<'a, G, E> QueryAll<'a, G, (), E> -where - G: Query, - E: Query, -{ - pub fn include(self) -> QueryAll<'a, G, I, E> - where - I: Query, - { - let (include, include_info) = I::borrow_with_group_info(self.world); - - QueryAll { - world: self.world, - get: self.get, - include, - exclude: self.exclude, - get_info: self.get_info, - include_info, - exclude_info: self.exclude_info, - } - } -} - -impl<'a, G, I> QueryAll<'a, G, I, ()> -where - G: Query, - I: Query, -{ - pub fn exclude(self) -> QueryAll<'a, G, I, E> - where - E: Query, - { - let (exclude, exclude_info) = E::borrow_with_group_info(self.world); - - QueryAll { - world: self.world, - get: self.get, - include: self.include, - exclude, - get_info: self.get_info, - include_info: self.include_info, - exclude_info, - } - } -} - #[allow(clippy::into_iter_without_iter)] impl<'a, G, I, E> IntoIterator for &'a mut QueryAll<'_, G, I, E> where