1use serde::Deserialize;
2
3#[derive(Deserialize, Debug, Clone)]
4#[allow(dead_code)]
5pub struct DhtMessage {
7 pub t: serde_bytes::ByteBuf,
9 #[allow(dead_code)]
10 pub y: String,
12 #[allow(dead_code)]
13 pub q: Option<String>,
15 pub a: Option<DhtArgs>,
17 pub r: Option<DhtResponse>,
19}
20
21#[derive(Deserialize, Debug, Clone)]
22pub struct DhtArgs {
24 pub id: Option<serde_bytes::ByteBuf>,
26 pub target: Option<serde_bytes::ByteBuf>,
28 pub info_hash: Option<serde_bytes::ByteBuf>,
30 pub token: Option<serde_bytes::ByteBuf>,
32 pub port: Option<u16>,
34 pub implied_port: Option<u8>,
36}
37
38#[derive(Deserialize, Debug, Clone)]
39pub struct DhtResponse {
41 #[serde(default)]
42 #[allow(dead_code)]
43 pub id: Option<serde_bytes::ByteBuf>,
45 #[serde(default)]
46 pub nodes: Option<serde_bytes::ByteBuf>,
48 #[serde(default)]
49 pub nodes6: Option<serde_bytes::ByteBuf>,
51 #[serde(default)]
52 pub values: Option<Vec<serde_bytes::ByteBuf>>,
54}