Skip to main content

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    InputChannelFull,
24
25    /// Выходной канал заполнен сообщениями
26    OutputChannelFull,
27
28    /// Запрос авторизации по логину и паролю
29    AuthRequestByLogin(AuthRequestByLogin),
30
31    /// Запрос авторизации по токену
32    AuthRequestByToken(AuthRequestByToken),
33
34    /// Отказ в авторизации
35    AuthResponseErr(AuthResponseErr),
36
37    /// Подтверждение авторизации
38    AuthResponseOk(AuthResponseOk),
39
40    /// Проверка связи - запрос партнера по коммуникации
41    Ping(Ping),
42
43    /// Проверка связи - ответ от партнера по коммуникации
44    Pong(Pong),
45}
46
47impl System {
48    /// Определяем сообщения, которые можно передавать между сервисами
49    pub fn define_enabled_routes(&self) -> bool {
50        match self {
51            System::InputChannelFull => todo!(),
52            System::OutputChannelFull => todo!(),
53            System::AuthRequestByLogin(_) => todo!(),
54            System::AuthRequestByToken(_) => todo!(),
55            System::AuthResponseErr(_) => todo!(),
56            System::AuthResponseOk(_) => todo!(),
57            System::Ping(_) => todo!(),
58            System::Pong(_) => todo!(),
59        }
60    }
61}