diff options
author | HampusM <hampus@hampusmat.com> | 2025-06-07 20:16:40 +0200 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2025-06-07 20:16:40 +0200 |
commit | caf56d34449b471169b7c71eddabad230449dfe3 (patch) | |
tree | a1ce343c8a091ff7269037efab8c7a23dce84d89 /ecs/src/query.rs | |
parent | 15c6cde9b01d8d62a21d61ca620aff4ef61b12dd (diff) |
refactor(ecs): remove component::HandleFromEntityComponentRef
Diffstat (limited to 'ecs/src/query.rs')
-rw-r--r-- | ecs/src/query.rs | 49 |
1 files changed, 32 insertions, 17 deletions
diff --git a/ecs/src/query.rs b/ecs/src/query.rs index 7e10c5b..ccb7add 100644 --- a/ecs/src/query.rs +++ b/ecs/src/query.rs @@ -6,7 +6,6 @@ use seq_macro::seq; use crate::component::{ Component, Handle as ComponentHandle, - HandleFromEntityComponentRef, HandleMut as ComponentHandleMut, }; use crate::entity::Handle as EntityHandle; @@ -342,18 +341,26 @@ impl<ComponentT: Component> TermWithField for &ComponentT fn get_field<'world>( entity_handle: &EntityHandle<'world>, - world: &'world World, + _world: &'world World, ) -> Self::Field<'world> { assert_eq!(ComponentT::id().kind(), UidKind::Component); - Self::Field::from_entity_component_ref( - entity_handle - .get_matching_components(ComponentT::id()) - .next(), - world, - ) - .unwrap_or_else(|err| { + let Some(component) = entity_handle + .get_matching_components(ComponentT::id()) + .next() + else { + panic!( + concat!( + "Component {} was not found in entity {}. There ", + "is most likely a bug in the entity querying" + ), + type_name::<ComponentT>(), + entity_handle.uid() + ); + }; + + Self::Field::from_entity_component_ref(component).unwrap_or_else(|err| { panic!( "Creating handle to component {} failed: {err}", type_name::<ComponentT>() @@ -375,18 +382,26 @@ impl<ComponentT: Component> TermWithField for &mut ComponentT fn get_field<'world>( entity_handle: &EntityHandle<'world>, - world: &'world World, + _world: &'world World, ) -> Self::Field<'world> { assert_eq!(ComponentT::id().kind(), UidKind::Component); - Self::Field::from_entity_component_ref( - entity_handle - .get_matching_components(ComponentT::id()) - .next(), - world, - ) - .unwrap_or_else(|err| { + let Some(component) = entity_handle + .get_matching_components(ComponentT::id()) + .next() + else { + panic!( + concat!( + "Component {} was not found in entity {}. There ", + "is most likely a bug in the entity querying" + ), + type_name::<ComponentT>(), + entity_handle.uid() + ); + }; + + Self::Field::from_entity_component_ref(component).unwrap_or_else(|err| { panic!( "Creating handle to component {} failed: {err}", type_name::<ComponentT>() |