Есть ли способ импортировать одну черту, чтобы использовать все методы этой черты и ее субтитров?
Нет.
Действительно, это количество набранных единицкажется незначительной вещью, о которой нужно беспокоиться.Если вас это сильно беспокоит, используйте glob import :
use foo::*;
Некоторые ящики часто имеют концепцию prelude , модуля со всеми общепринятымиимпортированные типы и признаки:
pub mod prelude {
pub use super::{Animal, Tiger};
}
use foo::prelude::*;
Rust имеет наследуемое свойство
Это сомнительное утверждение.Хотя мы, программисты, ленивы и используем термин «супертрейт», это не наследование, как думают программисты в классических объектно-ориентированных языках программирования.На самом деле, это просто еще один тип ограничения черты:
trait Alpha {}
trait Beta: Alpha {}
// Basically the same as
trait Beta
where
Self: Alpha,
{}
То есть любой тип, который реализует Beta
, должен также реализовывать Alpha
.