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 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
use rsiot_messages_core::IMessage;
/// Конфигурация компонента http-server
#[derive(Clone, Debug)]
pub struct Config<TMsg>
where
TMsg: IMessage,
{
/// Порт, через который доступен сервер
pub port: u16,
/// Функция преобразования текста в сообщения
///
/// # Примеры
///
/// ## Заглушка
///
/// ```rust
/// # enum Message{}
/// |_: &str| Ok::<String, anyhow::Error>(String::from(""))
/// # ;
/// ```
///
/// ## Десериализация из json
///
/// ```rust
/// # use rsiot_messages_core::{ExampleMessage as Message, IMessage};
/// |text: &str| {
/// let msg = Message::from_json(text)?;
/// Ok::<Option<Message>, anyhow::Error>(Some(msg))
/// }
/// # ;
/// ```
pub fn_input: fn(&str) -> anyhow::Result<Option<TMsg>>,
/// Функция преобразования сообщений в текст
///
/// # Примеры
///
/// ## Заглушка
///
/// ```rust
/// # enum Message{}
/// |_: &Message| Ok::<String, anyhow::Error>(String::from(""))
/// # ;
/// ```
///
/// ## Преобразование в json
///
/// ```rust
/// # use rsiot_messages_core::{ExampleMessage as Message, IMessage};
/// |msg: &Message| {
/// let text = msg.to_json()?;
/// Ok(text) as anyhow::Result<String>
/// }
/// # ;
/// ```
pub fn_output: fn(&TMsg) -> anyhow::Result<String>,
}