Skip to content

Commit 56b8316

Browse files
committed
feat: added chat req and resp
1 parent 98fa3c1 commit 56b8316

2 files changed

Lines changed: 39 additions & 0 deletions

File tree

src/routing_handler.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ impl RoutingHandler {
277277
}
278278

279279
/// Send a packet to the first hop in its route
280+
/// # Errors
281+
/// Returns an error if send fails
280282
fn send_packet_to_first_hop(&self, packet: Packet) -> Result<(), NetworkError> {
281283
if packet.routing_header.hops.len() > 1 {
282284
let first_hop = packet.routing_header.hops[1];

src/types.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,45 @@
1+
use serde::{Deserialize, Serialize};
12
use wg_internal::{network::NodeId, packet::Packet};
23
use crossbeam_channel::Sender;
34

45
pub type Bytes = Vec<u8>;
56

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+
643

744
pub enum ChatClientCommand {
845
NodeCommand(NodeCommand)

0 commit comments

Comments
 (0)