Возможно ли, чтобы одна структура расширяла существующую структуру, сохраняя все поля?
С помощьюrust 1.2.0
проблема
Я все еще нахожусь в процессе изучения Rust (исходя из фона Javascript) и пытаюсь выяснить, возможно ли это для одной структурыStructB
расширить существующую структуруStructA
такой, чтоStructB
имеет все поля, определенные наStructA
.
В Javascript (синтаксис ES6) я мог бы сделать что-то вроде этого ...
class Person {
constructor (gender, age) {
this.gender = gender;
this.age = age;
}
}
class Child extends Person {
constructor (name, gender, age) {
super(gender, age);
this.name = name;
}
}
Ограничения
StructA
от внешнегоcargo
пакет, который я не могу контролировать.Текущий прогресс
я нашел этосообщение в блоге об одиночном наследовании что звучит как то, что мне нужно.
Но попытка реализовать это привела к этому сообщению об ошибкеerror: virtual structs have been removed from the language
, Некоторый поиск позже, и я узнал, что это былореализовано и затем удалено в соответствии с RFC-341 довольно быстро
Также нашел этонить об использовании черт, но с тех порStructA
из внешней грузовой упаковки, я не думаю, что я могу превратить ее в черту.
Так каков будет правильный способ сделать это в Rust?