-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathlib.rs
33 lines (28 loc) · 856 Bytes
/
lib.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use std::{collections::HashMap, net::SocketAddr, ops::Range};
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Client {
pub id_range: Range<u32>,
pub addr_book: AddrBook,
pub num_replica: usize,
pub num_faulty: usize,
pub protocol: Protocol,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct Replica {
pub id: u8,
pub addr_book: AddrBook,
pub num_replica: usize,
pub num_faulty: usize,
pub protocol: Protocol,
}
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct AddrBook {
pub replica_addrs: HashMap<u8, SocketAddr>,
pub client_addrs: HashMap<u32, SocketAddr>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum Protocol {
Unreplicated,
Pbft,
}