rufi_gradient 2.0.12

A simple aggregate program implementing the gradient with the RuFi framework
Documentation
use rf_core::export::Export;
use rf_core::sensor_id::SensorId;
use std::any::Any;
use std::collections::HashMap;
use std::rc::Rc;

#[derive(Debug, Clone)]
pub struct DeviceState {
    pub self_id: i32,
    pub exports: HashMap<i32, Export>,
    pub local_sensor: HashMap<SensorId, Rc<Box<dyn Any>>>,
    pub nbr_sensor: HashMap<SensorId, HashMap<i32, Rc<Box<dyn Any>>>>,
}

impl DeviceState {
    pub fn update_exports(&mut self, nbr: i32, export: Export) {
        self.exports.insert(nbr, export);
    }
}

#[derive(Debug, Clone)]
pub struct Topology {
    pub devices: Vec<i32>,
    pub states: HashMap<i32, DeviceState>,
}

impl Topology {
    pub fn new(devices: Vec<i32>, states: HashMap<i32, DeviceState>) -> Self {
        Topology { devices, states }
    }
}