Rust Traits
Traits define shared behavior across types. Generic trait bounds usually use static dispatch, while trait objects such as dyn Trait use dynamic dispatch when runtime polymorphism is needed.
Shared behavior, trait bounds, static dispatch, and trait objects in Rust.