[ ] I've added tests for all code changes and additions (where applicable)
[ ] I've added a demonstration of the new feature to one or more examples
[ ] I've updated the book to reflect my changes
[ ] Usage of new public items is shown in the API docs
API changes
Breaking: RestrictedStorage removed (unsound without streaming JoinIter)
Breaking: DerefFlaggedStorage removed (unsound without streaming JoinIter)
Breaking: JoinIter::get/JoinIter::get_unchecked removed (unsound see https://github.com/amethyst/specs/issues/647) (can probably be brought back with a streaming JoinIter impl using GATs)
UnsplitFlaggedStorage added for deferred mutable access (like DerefFlaggedStorage) that can also be used in parallel joins (unlike any other flagged storage) (locked behind nightly feature).
Breaking: Safety comments on Join/UnprotectedStorage traits improved (downstream crates that implement novel storages should review these).
Checklist
API changes
Breaking: RestrictedStorage removed (unsound without streaming JoinIter) Breaking: DerefFlaggedStorage removed (unsound without streaming JoinIter) Breaking: JoinIter::get/JoinIter::get_unchecked removed (unsound see https://github.com/amethyst/specs/issues/647) (can probably be brought back with a streaming JoinIter impl using GATs)
UnsplitFlaggedStorage added for deferred mutable access (like DerefFlaggedStorage) that can also be used in parallel joins (unlike any other flagged storage) (locked behind
nightly
feature).Breaking: Safety comments on Join/UnprotectedStorage traits improved (downstream crates that implement novel storages should review these).