|
| 1 | +use serde::{Deserialize, Serialize}; |
1 | 2 | use wg_internal::{network::NodeId, packet::Packet}; |
2 | 3 | use crossbeam_channel::Sender; |
3 | 4 |
|
4 | 5 | pub type Bytes = Vec<u8>; |
5 | 6 |
|
| 7 | +#[derive(Serialize, Deserialize, Debug)] |
| 8 | +#[serde(tag = "message_type")] |
| 9 | +pub enum ChatRequest { |
| 10 | + #[serde(rename = "server_type?")] |
| 11 | + ServerTypeQuery, |
| 12 | + |
| 13 | + #[serde(rename = "registration_to_chat")] |
| 14 | + RegistrationToChat { client_id: NodeId }, |
| 15 | + |
| 16 | + #[serde(rename = "client_list?")] |
| 17 | + ClientListQuery, |
| 18 | + |
| 19 | + #[serde(rename = "message_for?")] |
| 20 | + MessageFor { client_id: NodeId, message: String }, |
| 21 | +} |
| 22 | + |
| 23 | +#[derive(Serialize, Deserialize, Debug)] |
| 24 | +#[serde(tag = "response_type")] |
| 25 | +pub enum ChatResponse { |
| 26 | + #[serde(rename = "server_type!")] |
| 27 | + ServerTypeResponse { server_type: String }, |
| 28 | + |
| 29 | + #[serde(rename = "client_list!")] |
| 30 | + ClientListResponse { list_of_client_ids: Vec<NodeId> }, |
| 31 | + |
| 32 | + #[serde(rename = "message_from!")] |
| 33 | + MessageFrom { client_id: NodeId, message: String }, |
| 34 | + |
| 35 | + #[serde(rename = "error_wrong_client_id!")] |
| 36 | + ErrorWrongClientId, |
| 37 | + |
| 38 | + // Custom response for successful registration |
| 39 | + #[serde(rename = "registration_success")] |
| 40 | + RegistrationSuccess, |
| 41 | +} |
| 42 | + |
6 | 43 |
|
7 | 44 | pub enum ChatClientCommand { |
8 | 45 | NodeCommand(NodeCommand) |
|
0 commit comments