Provide life time decoupled version

This commit is contained in:
hodasemi 2025-04-06 11:58:58 +02:00
parent 9420cfa863
commit b827d47b2c

View file

@ -181,6 +181,20 @@ impl World {
.unwrap()) .unwrap())
} }
pub fn entities_mut_unchecked<'a, const N: usize>(
&mut self,
entities: [Entity; N],
) -> std::result::Result<[&'a mut EntityObject; N], EntityNotFoundError> {
Ok(unsafe { remove_life_time_mut(&mut self.entities) }
.get_disjoint_mut::<Entity, N>(entities.iter().collect::<Vec<_>>().try_into().unwrap())
.into_iter()
.enumerate()
.map(|(i, entity_opt)| entity_opt.ok_or(EntityNotFoundError::new(entities[i])))
.collect::<Result<Vec<_>, _>>()?
.try_into()
.unwrap())
}
pub fn add_entity(&mut self, entity_object: EntityObject) -> Result<Entity> { pub fn add_entity(&mut self, entity_object: EntityObject) -> Result<Entity> {
let entity = entity_object.as_entity(); let entity = entity_object.as_entity();
self.entities_to_add.push(entity_object); self.entities_to_add.push(entity_object);