1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use rsiot_messages_core::IMessage;

/// Конфигурация Websocket-сервера
#[derive(Clone, Debug)]
pub struct Config<TMessage>
where
    TMessage: IMessage,
{
    /// Порт, через который доступен сервер
    pub port: u16,

    /// Функция преобразования перед отправкой клиенту
    ///
    /// Если нужно просто переделать в json:
    /// ```
    /// |msg: &TMessage| {
    ///     let text = msg.to_json()?;
    ///     Ok(Some(text))
    /// }
    /// ```
    pub fn_input: fn(&TMessage) -> anyhow::Result<Option<String>>,

    /// Функция преобразования данных, полученных от клиента
    ///
    /// Если нужно просто переделать из json:
    /// ```
    /// |data: &str| {
    ///     let msg = TMessage::from_json(data)?;
    ///     Ok(Some(msg))
    /// }
    /// ```
    pub fn_output: fn(&str) -> anyhow::Result<Option<TMessage>>,
}