У меня есть структура, которая управляет несколькими датчиками. У меня есть гироскоп, акселерометр, магнитометр, барометр и термометр. Все это черты характера.
pub struct SensorManager {
barometer: Barometer + Sized,
thermometer: Thermometer + Sized,
gyroscope: Gyroscope + Sized,
accelerometer: Accelerometer + Sized,
magnetometer: Magnetometer + Sized
}
Мне нужно сделать его модульным, чтобы в файле конфигурации вы могли указать, какие датчики вы используете.
Проблема в том, что некоторые датчики перекрываются. Например: у одного человека может быть LSM9DS0, который содержит гироскоп, акселерометр и магнитометр, а у другого человека может быть гироскоп L3GD20 и акселерометр LSM303D, магнитометр.
В C ++ я бы сохранил указатели или ссылки, но я не уверен, как правильно реализовать это в Rust.
Краткая версия: необходимо иметь ссылки на каждый датчик как на члены этой структуры. Некоторые из этих ссылок относятся к одному и тому же объекту.