@samuelpilz you may also look at this other thread, where you can see an example of reconstructing a trait object with an overridden vtable, to achieve upcasting one trait object into another.
Most techniques currently need what @vitalyd called a trampoline, to ensure that type-specific information is accessible from within the vtable of a type-erased object (this is, for instance, what ::downcast-rs
does).