Каков наилучший способ наследования структуры в Rust 1.3?
struct Foo: Bar {
}
Когда я скомпилирую это, компилятор сообщает мне, что virtual structs были удалены с языка.
Во время публикации этого вопроса Rust 1.3 является текущей стабильной версией.
Ответ 1
Короткий ответ, вы не можете наследовать с помощью структур.
Вместо наследования Rust использует состав. Однако вы можете сделать наследование в traits. У черт нет данных, но они могут определять функции, поэтому вы можете получить довольно много преимуществ наследования:
Разработчик FooBar должен реализовать foo (если только вы не предоставили реализацию по умолчанию).
Один из способов Rust делает специализацию, как правило, через enums, которые очень сильны в Rust. Один из разработчиков Rust написал хорошую серию блога о том, как Rust подходит к этим типам проблем. Я рекомендую прочитать его, а также прочитать официальную книгу (ранее связанную).