naught/
message.rs

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        // Id of sender
20        pub id: Id,
21
22        // Sender's known peers
23        pub peers: Vec<PeerInfo>,
24    }
25
26    #[derive(Serialize, Deserialize, Debug)]
27    pub struct RemoveNode {
28        // Id of sender
29        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        // Id of responder
40        pub id: Id,
41
42        // Responder's known peers
43        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}