Type Erasure in Rust
Rust traits have the neat property where you can use them either as generic bounds or as dynamic dispatch, with the
&dyn MyTrait
syntax. The latter is necessary in heterogeneous scenarios, where you want to use multiple concrete types together that all implement a common trait. However, that requires that you have an instance, so that the reference actually “refers” to something. What if you have a trait with “static” requirements, likeconst
s or methods without&self
?