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