This is also how Go does it. It looks like Rust traits can do everything Go interfaces can do, and more?
- They auto-implement on types that have the appropriate methods (a feature that probably is unwanted in Rust) - They can be runtime downcasted via `.(type_name_here)` - They can be runtime type switched via `switch foo.(type)`
I'm not sure of the vtable internals though.