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())
|
.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);
|
||||||
|
|
Loading…
Reference in a new issue