-
Notifications
You must be signed in to change notification settings - Fork 217
Open
Labels
Description
At the moment, MaskedStorage
requires a Component
bound on its type parameter, and it's missing two of the methods that UnprotectedStorage
offers. I think it would make the type more flexible, with relatively little work, if the following changes were made:
- Remove the
T: Component
bound, instead adding a second type parameterS
for the storage, with aS: UnprotectedStorage<T>
bound. - Add the missing methods
.get
and.get_mut
that forward to the correspondingUnprotectedStorage
methods.
With these changes, the MaskedStorage
type could be used for any T
, anything that needs an ID for lookup would work, not just components. It would make it simply a safe wrapper around UnprotectedStorage
. An example is Amethyst, which currently uses UnprotectedStorage
for asset storage, but which has had to build its own safety wrappers. If MaskedStorage
were changed in this way, users could use that type instead, without safety concerns.