Я пытаюсь реализовать формат на основе классов в Rust, который не имеет классов или объектно-ориентированных концепций, таких как наследование.
Рассмотрим следующий пример:
class Creature {
int id;
bool alive
};
class Human: public Creature {
int salary;
};
class Dog: public Creature {
bool has_fur;
};
Если я хочу реализовать ту же структуру в Rust, я бы сделал что-то вроде этого:
struct Human {
id: i32,
alive: bool,
salary: i32,
}
struct Dog {
id: i32,
alive: bool,
has_fur: bool,
}
Из-за дублированных структур приложению потребуется больше памяти, чем если бы они были написаны на C ++ и унаследованы от базового класса ( или, может быть, использовали прототипы в JavaScript)? Приложение будет содержать миллионы объектов.
Я предполагаю, что в коде будет много дублированных имен членов, что, возможно, само по себе является проблемой. Но как бы вы перевели структуру данных в Rust (с наименьшим возможным объемом памяти)? Или это путь к go?