1extern crate serde;
2
3use serde::{Deserialize, Serialize};
4
5pub type Id = [u8; 8];
6
7#[derive(Serialize, Deserialize, Clone, Debug)]
8pub struct PeerInfo {
9 pub id: Id,
10 pub base_uri: String,
11}
12
13pub mod request {
14 use super::*;
15 use serde::{Deserialize, Serialize};
16
17 #[derive(Serialize, Deserialize, Debug)]
18 pub struct AddNode {
19 pub id: Id,
21
22 pub peers: Vec<PeerInfo>,
24 }
25
26 #[derive(Serialize, Deserialize, Debug)]
27 pub struct RemoveNode {
28 pub id: Id,
30 }
31}
32
33pub mod response {
34 use super::*;
35 use serde::{Deserialize, Serialize};
36
37 #[derive(Serialize, Deserialize, Debug)]
38 pub struct Info {
39 pub id: Id,
41
42 pub peers: Vec<PeerInfo>,
44 }
45
46 #[derive(Serialize, Deserialize, Debug)]
47 pub struct AddNode {}
48
49 #[derive(Serialize, Deserialize, Debug)]
50 pub struct RemoveNode {}
51
52 #[derive(Serialize, Deserialize, Debug)]
53 pub struct ListKeys {
54 pub keys: Vec<String>,
55 }
56}