Supertraits: Requiring One Trait's Functionality Within Another Trait
Sometimes, when writing a trait, you need to rely on functionality from another trait. Rust allows you to do this using a feature informally called supertraits. A supertrait is a trait that another trait depends on. This lets you build hierarchies of behavior, where one trait requires and can use the methods of its parent trait, creating a powerful and expressive API.