From 4e291f33dc5f15c8f083c22f1822c7daf987536b Mon Sep 17 00:00:00 2001 From: gered Date: Sun, 15 May 2022 14:40:06 -0400 Subject: [PATCH] add contains_key convenience component store method --- libretrogd/src/entities/mod.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/libretrogd/src/entities/mod.rs b/libretrogd/src/entities/mod.rs index 1f840b7..37006a6 100644 --- a/libretrogd/src/entities/mod.rs +++ b/libretrogd/src/entities/mod.rs @@ -203,11 +203,13 @@ impl Entities { pub trait ComponentStoreConvenience { fn single(&self) -> Option<(&EntityId, &T)>; fn get(&self, k: &EntityId) -> Option<&T>; + fn contains_key(&self, k: &EntityId) -> bool; } pub trait ComponentStoreConvenienceMut { fn single_mut(&mut self) -> Option<(&EntityId, &T)>; fn get_mut(&mut self, k: &EntityId) -> Option<&mut T>; + fn contains_key(&mut self, k: &EntityId) -> bool; } impl<'a, T: Component> ComponentStoreConvenience for Option> { @@ -227,6 +229,14 @@ impl<'a, T: Component> ComponentStoreConvenience for Option bool { + if let Some(components) = self { + components.contains_key(k) + } else { + false + } + } } impl<'a, T: Component> ComponentStoreConvenience for Option> { @@ -246,6 +256,14 @@ impl<'a, T: Component> ComponentStoreConvenience for Option bool { + if let Some(components) = self { + components.contains_key(k) + } else { + false + } + } } impl<'a, T: Component> ComponentStoreConvenienceMut for Option> { @@ -265,6 +283,14 @@ impl<'a, T: Component> ComponentStoreConvenienceMut for Option bool { + if let Some(components) = self { + components.contains_key(k) + } else { + false + } + } } pub trait OptionComponentStore {