Expand description
Компонент для сохранения данных в файловой системе и загрузки данных из файловой системы
§Пример
§Файл config_filesystem/mod.rs
use rsiot::{
components::cmp_filesystem::{BufferBound, CallFnOutputKind, Cmp, Config},
serde_utils::SerdeAlgKind,
};
use serde::{Deserialize, Serialize};
use super::messages::*;
pub fn new() -> rsiot::executor::Component<Config<Msg, Buffer>, Msg> {
let config_filesystem = Config::<Msg, Buffer> {
filename: "examples/cmp_filesystem/test_files/test_file.json".into(),
serde_alg: SerdeAlgKind::Json,
call_fn_output_kind: CallFnOutputKind::Always,
fn_input: |msg, buffer| match msg {
Msg::InjPeriodic(InjPeriodic::Increase) => {
let mut buffer = buffer.clone();
buffer.counter = buffer.counter.wrapping_add(1);
Some(buffer)
}
_ => None,
},
fn_output: |buffer| vec![Msg::Filesystem(Filesystem::Counter(buffer.counter))],
};
Cmp::new(config_filesystem)
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct Buffer {
pub counter: u64,
pub internal_struct: InternalStruct,
}
impl BufferBound for Buffer {}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct InternalStruct {
pub field: f64,
}
Structs§
- Конфигурация cmp_filesystem
Enums§
- Частота вызова функции создания исходящих сообщений
Traits§
- Ограничения на структуру буфера
Type Aliases§
- Компонент cmp_filesystem