bevy/crates/bevy_ecs/src/world
James Liu c988264180 Mark mutable APIs under ECS storage as pub(crate) (#5065)
# Objective
Closes #1557. Partially addresses #3362.

Cleanup the public facing API for storage types. Most of these APIs are difficult to use safely when directly interfacing with these types, and is also currently impossible to interact with in normal ECS use as there is no `World::storages_mut`. The majority of these types should be easy enough to read, and perhaps mutate the contents, but never structurally altered without the same checks in the rest of bevy_ecs code. This both cleans up the public facing types and helps use unused code detection to remove a few of the APIs we're not using internally. 

## Solution

 - Mark all APIs that take `&mut T` under `bevy_ecs::storage` as `pub(crate)` or `pub(super)`
 - Cleanup after it all.

Entire type visibility changes:

 - `BlobVec` is `pub(super)`, only storage code should be directly interacting with it.
 - `SparseArray` is now `pub(crate)` for the entire type. It's an implementation detail for `Table` and `(Component)SparseSet`.
 - `TableMoveResult` is now `pub(crate)

---

## Changelog
TODO

## Migration Guide
Dear God, I hope not.
2022-06-21 20:35:26 +00:00
..
entity_ref.rs untyped APIs for components and resources (#4447) 2022-05-30 15:32:47 +00:00
identifier.rs Unique WorldId (#2827) 2021-09-30 20:54:47 +00:00
mod.rs Mark mutable APIs under ECS storage as pub(crate) (#5065) 2022-06-21 20:35:26 +00:00
spawn_batch.rs Implement FusedIterator for eligible Iterator types (#4942) 2022-06-09 03:19:31 +00:00
world_cell.rs Fix broken WorldCell test (#5009) 2022-06-14 16:14:33 +00:00