Remove EntityMut::get_unchecked (#4547)
The only way to soundly use this API is already encapsulated within `EntityMut::get`, so this api is removed. # Migration guide Replace calls to `EntityMut::get_unchecked` with calls to `EntityMut::get`.
This commit is contained in:
parent
7a0f46c21b
commit
0fdb45ce90
@ -154,7 +154,10 @@ impl<'w> EntityMut<'w> {
|
|||||||
#[inline]
|
#[inline]
|
||||||
pub fn get<T: Component>(&self) -> Option<&'_ T> {
|
pub fn get<T: Component>(&self) -> Option<&'_ T> {
|
||||||
// SAFE: lifetimes enforce correct usage of returned borrow
|
// SAFE: lifetimes enforce correct usage of returned borrow
|
||||||
unsafe { self.get_unchecked::<T>() }
|
unsafe {
|
||||||
|
get_component_with_type(self.world, TypeId::of::<T>(), self.entity, self.location)
|
||||||
|
.map(|value| &*value.cast::<T>())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
@ -163,23 +166,6 @@ impl<'w> EntityMut<'w> {
|
|||||||
unsafe { self.get_unchecked_mut::<T>() }
|
unsafe { self.get_unchecked_mut::<T>() }
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Gets an immutable reference to the component of type `T` associated with
|
|
||||||
/// this entity without ensuring there are no unique borrows active and without
|
|
||||||
/// ensuring that the returned reference will stay valid.
|
|
||||||
///
|
|
||||||
/// # Safety
|
|
||||||
///
|
|
||||||
/// - The returned reference must never alias a mutable borrow of this component.
|
|
||||||
/// - The returned reference must not be used after this component is moved which
|
|
||||||
/// may happen from **any** `insert_component`, `remove_component` or `despawn`
|
|
||||||
/// operation on this world (non-exhaustive list).
|
|
||||||
#[inline]
|
|
||||||
pub unsafe fn get_unchecked<T: Component>(&self) -> Option<&'w T> {
|
|
||||||
// SAFE: entity location is valid and returned component is of type T
|
|
||||||
get_component_with_type(self.world, TypeId::of::<T>(), self.entity, self.location)
|
|
||||||
.map(|value| &*value.cast::<T>())
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Gets a mutable reference to the component of type `T` associated with
|
/// Gets a mutable reference to the component of type `T` associated with
|
||||||
/// this entity without ensuring there are no other borrows active and without
|
/// this entity without ensuring there are no other borrows active and without
|
||||||
/// ensuring that the returned reference will stay valid.
|
/// ensuring that the returned reference will stay valid.
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user