我正在尝试创建一个结构,该结构包含一个基于另一个字段类型指定的通用字段。这种类型将成为我定义的几种结构之一。
基本上,我在这里想要做的是创建一个负责设备配置的模块。这意味着要处理许多不同的设备类型。需要为所有设备配置某些规范,并且我创建了一个结构,该结构在OO范式中将是父类(在此表示为DeviceCfg)。然后,特定于设备类型的规范将代表子类。 (这些分别表示为RaspberryPiCfg,Esp8266Cfg等)。
我正在尝试构建事物,以便我可以引用单个对象,该对象合并了通用规范(适用于所有设备)以及特定于设备类型的规范。
/users/{userId}/order_results/{orderId}
感谢所有帮助。我仍然是生锈的学习者。
答案 0 :(得分:1)
需要为所有设备配置某些规范,并且我创建了一个结构,该结构在OO范式中将是父类
Rust不是一种面向对象的语言,因此应用OO范式不是一个好主意。也没有理由使用特征。 Rust特征是用于定义通用行为,而不是通用数据。
我相信您应该使用合成而不是继承。
enum DeviceSpecificCfg {
RaspberryPi(RaspberryPiCfg),
Esp8266(Esp8266Cfg),
// ...
}
struct Devicecfg {
// common fields ...
device_specific_cfg: DeviceSpecificCfg
}