There have been multiple RFCs about making enum variants their own type:
Unfortunately, they have been postponed or not yet decided on as this is not considered a language priority.
This means that right now, the way you have proposed is the only way to have types for enum variants.