我有一個管理多個傳感器的結構。我有一個陀螺儀,加速計,磁力計,氣壓計和溫度計。所有這些都是特質。當一個對象可能實現多個特徵時,如何創建對特徵的引用結構?
pub struct SensorManager {
barometer: Barometer + Sized,
thermometer: Thermometer + Sized,
gyroscope: Gyroscope + Sized,
accelerometer: Accelerometer + Sized,
magnetometer: Magnetometer + Sized
}
我需要使它成爲模塊化的,所以在配置文件中您可以指定您正在使用的傳感器。
問題是一些傳感器重疊。例如:一個人可以有一個包含陀螺儀,加速度計和磁力計的LSM9DS0,而另一個人可以有一個L3GD20陀螺儀和一個LSM303D加速計 - 磁力計。
在C++中,我會存儲指針或引用,但我不確定如何在Rust中安全地正確實現它。
簡短版本:需要將每個傳感器的引用作爲此結構的成員。其中一些參考文獻是同一個對象。