Basically, it's just not done yet. RFC 2071 proposed adding a variant of impl Trait
where you give the type an explicit name; it was accepted a whole eight months ago, but nobody has actually implemented it.
(On the other hand, if you use the existing impl Trait
syntax rather than this proposed variant, I don't think there's any consensus on whether there should ever be a way to name that type, e.g. a typeof
operator.)
For what it's worth, C++ has a similar problem with lambdas, which similarly have an unnameable type and cannot be stored in a struct without making the struct generic.