Provide life time decoupled version
This commit is contained in:
parent
9420cfa863
commit
b827d47b2c
1 changed files with 14 additions and 0 deletions
|
@ -181,6 +181,20 @@ impl World {
|
|||
.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> {
|
||||
let entity = entity_object.as_entity();
|
||||
self.entities_to_add.push(entity_object);
|
||||
|
|
Loading…
Reference in a new issue