tunnl-shared 0.2.0

Shared types and messages for tunnl tunnel service
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "type")]
pub enum Message {
    #[serde(rename = "client_hello")]
    ClientHello {
        token: String,
        local_port: u16,
    },
    #[serde(rename = "server_hello")]
    ServerHello {
        public_url: String,
    },
    #[serde(rename = "proxy_request")]
    ProxyRequest {
        request_id: String,
        method: String,
        path: String,
        headers: Vec<(String, String)>,
        body_b64: String,
    },
    #[serde(rename = "proxy_response")]
    ProxyResponse {
        request_id: String,
        status: u16,
        headers: Vec<(String, String)>,
        body_b64: String,
    },
    #[serde(rename = "ping")]
    Ping,
    #[serde(rename = "pong")]
    Pong,
    #[serde(rename = "websocket_upgrade")]
    WebSocketUpgrade {
        ws_id: String,
        path: String,
        query: String,
        headers: Vec<(String, String)>,
    },
    #[serde(rename = "websocket_message")]
    WebSocketMessage {
        ws_id: String,
        message_b64: String,
        is_binary: bool,
    },
    #[serde(rename = "websocket_close")]
    WebSocketClose {
        ws_id: String,
    },
    #[serde(rename = "error")]
    Error {
        message: String,
    },
}