rsiot/message/eav_helpers/
value_instant.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::message::{eav, Timestamp};

/// Мгновенное значение
pub struct ValueInstant {
    pub ts: Timestamp,
    pub entity: String,
    pub attr: Option<String>,
    pub value: eav::ValueType,
}

impl From<ValueInstant> for Vec<eav::EavModel> {
    fn from(value: ValueInstant) -> Self {
        let eav_value = eav::EavModel {
            ts: value.ts,
            entity: value.entity,
            attr: value.attr,
            value: value.value,
            agg: eav::AggType::Current,
            aggts: None,
            aggnext: vec![eav::AggType::Min, eav::AggType::Max, eav::AggType::Mean],
        };
        vec![eav_value]
    }
}