hightower_client/
types.rs1use serde::{Deserialize, Serialize};
2use std::net::SocketAddr;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct NetworkInfo {
6 pub public_ip: String,
7 pub public_port: u16,
8 pub local_ip: String,
9 pub local_port: u16,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
14pub struct PeerInfo {
15 pub node_id: String,
17 pub public_key_hex: String,
19 pub assigned_ip: String,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub endpoint: Option<SocketAddr>,
24}
25
26#[derive(Debug, Serialize)]
27pub(crate) struct RegistrationRequest<'a> {
28 pub public_key_hex: &'a str,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub public_ip: Option<&'a str>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub public_port: Option<u16>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub local_ip: Option<&'a str>,
35 #[serde(skip_serializing_if = "Option::is_none")]
36 pub local_port: Option<u16>,
37}
38
39#[derive(Debug, Deserialize)]
40pub(crate) struct RegistrationResponse {
41 pub node_id: String,
42 pub token: String,
43 pub gateway_public_key_hex: String,
44 pub assigned_ip: String,
45}