Skip to main content

rsiot/components/cmp_file_appender/
config.rs

1use std::marker::PhantomData;
2
3use crate::message::MsgDataBound;
4
5/// Конфигурация компонента cmp_file_appender
6#[derive(Clone)]
7pub struct Config<TMsg, TFnInput>
8where
9    TMsg: MsgDataBound,
10    TFnInput: Fn(TMsg) -> ConfigAction + Send + Sync,
11{
12    /// PhantomData для сообщений
13    pub _msg_phantom: PhantomData<TMsg>,
14
15    /// Функция преобразования сообщений в строки для сохранения в файл
16    pub fn_input: TFnInput,
17}
18
19/// Действие на основе входящего сообщения
20#[derive(Clone)]
21pub enum ConfigAction {
22    /// Не предпринимать никаких действий
23    NoAction,
24
25    /// Добавить строку в файл
26    AppendLine {
27        /// Название файла
28        filename: String,
29
30        /// Строка для добавления в файл
31        line: String,
32    },
33
34    /// Завершить обработку
35    EndProcessing,
36}