File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed
crates/bevy_ecs/src/world Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -1401,6 +1401,25 @@ impl World {
1401
1401
/// use this in cases where the actual types are not known at compile time.**
1402
1402
#[ inline]
1403
1403
pub fn get_resource_mut_by_id ( & mut self , component_id : ComponentId ) -> Option < MutUntyped < ' _ > > {
1404
+ // SAFETY: unique world access
1405
+ unsafe { self . get_resource_mut_by_id_unchecked ( component_id) }
1406
+ }
1407
+
1408
+ /// Gets a resource to the resource with the id [`ComponentId`] if it exists.
1409
+ /// The returned pointer may be used to modify the resource, as long as the mutable borrow
1410
+ /// of the [`World`] is still valid.
1411
+ ///
1412
+ /// **You should prefer to use the typed API [`World::get_resource_mut`] where possible and only
1413
+ /// use this in cases where the actual types are not known at compile time.**
1414
+ ///
1415
+ /// # Safety
1416
+ /// This will allow aliased mutable access to the given resource type. The caller must ensure
1417
+ /// that there is either only one mutable access or multiple immutable accesses at a time.
1418
+ #[ inline]
1419
+ pub unsafe fn get_resource_mut_by_id_unchecked (
1420
+ & self ,
1421
+ component_id : ComponentId ,
1422
+ ) -> Option < MutUntyped < ' _ > > {
1404
1423
let info = self . components . get_info ( component_id) ?;
1405
1424
if !info. is_send_and_sync ( ) {
1406
1425
self . validate_non_send_access_untyped ( info. name ( ) ) ;
You can’t perform that action at this time.
0 commit comments