Open
Description
What problem does this solve or what need does it fill?
The ComponentDescriptor
is always the same for each component type.
What solution would you like?
Create an associated constant on the Component
and Resource
trait, which stores the existing information.
Constify all of the methods on ComponentDescriptor
, then use those to initialize this information at compile-time.
We can also do this for NonSend
resources by creating a simple trait for them.
What alternative(s) have you considered?
Enable the feature flags and do it now!
Additional context
This is blocked by several (!) unstable rustc
features.
- trait bounds other than
Sized
on const fn parameters are unstable std::any::type_name
is not yet stable as a const fnTypeId::of
is not yet stable as a const fn- function pointer casts are not allowed in constant functions
rust-lang/rust#57563 is the relevant tracking issue