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>>,
}