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
use url::Url; use rsiot_messages_core::IMessage; /// Настройки Websocket-клиента #[derive(Clone, Debug)] pub struct Config<TMessage> where TMessage: IMessage, { /// Адрес Websocket-сервера pub url: Url, /// Преобразование входящих сообщений в текст для отправки на сервер /// /// По-умолчанию можно задать: /// /// ```rust /// |_: &TMessage| None /// ``` pub fn_input: fn(&TMessage) -> Option<String>, /// Преобразование полученного от сервера текста в исходящие сообщения /// /// Пустой коллбек: /// /// ```rust /// |_: &str| Ok(vec![]) /// ``` /// /// Для преобразования из json: /// /// ```rust /// |text: &str| { /// let msg = TMessage::from_json(text)?; /// Ok(vec![msg]) /// } /// ``` pub fn_output: fn(&str) -> anyhow::Result<Vec<TMessage>>, }