Skip to main content

rsiot/components/cmp_os_process/
config.rs

1use crate::message::MsgDataBound;
2
3/// Конфигурация компонента cmp_os_process
4#[derive(Clone)]
5pub struct Config<TMsg>
6where
7    TMsg: MsgDataBound,
8{
9    /// Вектор команд
10    pub commands: Vec<ConfigCommand<TMsg>>,
11}
12
13/// Конфигурация отдельной команды
14#[derive(Clone)]
15pub struct ConfigCommand<TMsg>
16where
17    TMsg: MsgDataBound,
18{
19    /// Функция преобразования входящих сообщений в вектор команд
20    pub fn_input: fn(&TMsg) -> Option<Vec<String>>,
21
22    /// Функция преобразования вывода команд в вектор сообщений
23    pub fn_output: fn(&[ExecResult]) -> Option<Vec<TMsg>>,
24}
25
26/// Результат выполнения команды
27pub struct ExecResult {
28    /// Статус выполнения команды
29    pub status: String,
30
31    /// Вывод команды
32    pub stdout: String,
33
34    /// Ошибки команды
35    pub stderr: String,
36}