1mod chunk_proof;
11mod cmd;
12mod connection_info;
13mod node_id;
14mod query;
15mod response;
16
17pub use self::{
18 chunk_proof::{ChunkProof, Nonce},
19 cmd::Cmd,
20 connection_info::ConnectionInfo,
21 node_id::NodeId,
22 query::Query,
23 response::{CmdResponse, QueryResponse},
24};
25
26use super::NetworkAddress;
27
28use serde::{Deserialize, Serialize};
29
30#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
32pub enum Request {
33 Cmd(Cmd),
35 Query(Query),
37}
38
39#[allow(clippy::large_enum_variant)]
41#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
42pub enum Response {
43 Cmd(CmdResponse),
45 Query(QueryResponse),
47}
48
49impl Request {
50 pub fn dst(&self) -> NetworkAddress {
52 match self {
53 Request::Cmd(cmd) => cmd.dst(),
54 Request::Query(query) => query.dst(),
55 }
56 }
57}
58
59impl std::fmt::Display for Response {
60 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
61 write!(f, "{self:?}")
62 }
63}
64
65impl std::fmt::Display for Request {
66 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
67 write!(f, "{self:?}")
68 }
69}