amethyst / amethyst/specs

Turn MaskedStorage into a safe wrapper around UnprotectedStorage

Aperta
#664 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
feature-request
Lingua principale
Rust
Stelle
2.6k
Fork
215
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

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 parameter `S` for the storage, with a `S: UnprotectedStorage` bound.
* Add the missing methods `.get` and `.get_mut` that forward to the corresponding `UnprotectedStorage` 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.

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.