tunnl_shared/
lib.rs

1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4#[serde(tag = "type")]
5pub enum Message {
6    #[serde(rename = "client_hello")]
7    ClientHello {
8        token: String,
9        local_port: u16,
10    },
11    #[serde(rename = "server_hello")]
12    ServerHello {
13        public_url: String,
14    },
15    #[serde(rename = "proxy_request")]
16    ProxyRequest {
17        request_id: String,
18        method: String,
19        path: String,
20        headers: Vec<(String, String)>,
21        body_b64: String,
22    },
23    #[serde(rename = "proxy_response")]
24    ProxyResponse {
25        request_id: String,
26        status: u16,
27        headers: Vec<(String, String)>,
28        body_b64: String,
29    },
30    #[serde(rename = "ping")]
31    Ping,
32    #[serde(rename = "pong")]
33    Pong,
34    #[serde(rename = "websocket_upgrade")]
35    WebSocketUpgrade {
36        ws_id: String,
37        path: String,
38        query: String,
39        headers: Vec<(String, String)>,
40    },
41    #[serde(rename = "websocket_message")]
42    WebSocketMessage {
43        ws_id: String,
44        message_b64: String,
45        is_binary: bool,
46    },
47    #[serde(rename = "websocket_close")]
48    WebSocketClose {
49        ws_id: String,
50    },
51    #[serde(rename = "error")]
52    Error {
53        message: String,
54    },
55}