rsiot/components_config/websocket_server/
config.rs1use crate::{message::Message, serde_utils::SerdeAlgKind};
2
3use super::WebsocketMessage;
4
5#[derive(Clone, Debug)]
7pub struct Config<TMsg, TServerToClient, TClientToServer>
8where
9 TServerToClient: WebsocketMessage,
10 TClientToServer: WebsocketMessage,
11{
12 pub serde_alg: SerdeAlgKind,
14
15 pub port: u16,
17
18 pub fn_server_to_client: FnInput<TMsg, TServerToClient>,
20
21 pub fn_client_to_server: FnOutput<TMsg, TClientToServer>,
23}
24
25pub type FnInput<TMsg, TServerToClient> = fn(&Message<TMsg>) -> Option<TServerToClient>;
27pub type FnOutput<TMsg, TClientToServer> = fn(TClientToServer) -> Vec<Message<TMsg>>;