Короткий ответ, вы не можете наследовать с помощью структур.
Вместо наследования Руста использует состав. Тем не менее, вы можете сделать наследование в пределах traits. Черты характера не имеют данных, но они могут определить функции, так что вы можете получить довольно много преимуществ наследования:
trait Foo {
fn foo(&self);
}
trait FooBar: Foo {
fn foobar(&self);
}
реализатор FooBar
должен осуществлять foo
(если не обеспечить реализацию по умолчанию) ,
Один способ Rust делает специализацию, как правило, через enums
, которые являются очень мощными в Rust. Один из разработчиков Rust написал a good blog series about how Rust approaches these types of problems. Я рекомендую прочитать его, а также прочитать официальную книгу (ранее связанную).
http://aturon.github.io/blog/2015/09/18/reuse/ имеет несколько рабочих примеров из Серво, если вам действительно нужно наследование. – ArtemGr