rsiot/message/system_messages/
mod.rs

1//! Типы системных сообщений
2
3mod auth_request_by_login;
4mod auth_request_by_token;
5mod auth_response_error;
6mod auth_response_ok;
7mod ping_pong;
8
9pub use auth_request_by_login::AuthRequestByLogin;
10pub use auth_request_by_token::AuthRequestByToken;
11pub use auth_response_error::AuthResponseErr;
12pub use auth_response_ok::AuthResponseOk;
13pub use ping_pong::{Ping, Pong};
14
15use serde::{Deserialize, Serialize};
16
17use super::MsgKey;
18
19/// Типы системных сообщений
20#[derive(Clone, Debug, Deserialize, MsgKey, PartialEq, Serialize)]
21pub enum System {
22    /// Запрос авторизации по логину и паролю
23    AuthRequestByLogin(AuthRequestByLogin),
24
25    /// Запрос авторизации по токену
26    AuthRequestByToken(AuthRequestByToken),
27
28    /// Отказ в авторизации
29    AuthResponseErr(AuthResponseErr),
30
31    /// Подтверждение авторизации
32    AuthResponseOk(AuthResponseOk),
33
34    /// Проверка связи - запрос партнера по коммуникации
35    Ping(Ping),
36
37    /// Проверка связи - ответ от партнера по коммуникации
38    Pong(Pong),
39
40    /// Для ESP - wifi подключен
41    EspWifiConnected,
42}
43
44impl System {
45    /// Определяем сообщения, которые можно передавать между сервисами
46    pub fn define_enabled_routes(&self) -> bool {
47        match self {
48            System::AuthRequestByLogin(_) => todo!(),
49            System::AuthRequestByToken(_) => todo!(),
50            System::AuthResponseErr(_) => todo!(),
51            System::AuthResponseOk(_) => todo!(),
52            System::Ping(_) => todo!(),
53            System::Pong(_) => todo!(),
54            System::EspWifiConnected => false,
55        }
56    }
57}