1use std::time::Duration;
2
3use serde_derive::{Deserialize, Serialize};
4
5#[derive(Default, Debug, Serialize, Deserialize)]
6pub struct Config {
7 pub run_duration: Duration,
8 pub report_interval: Option<Duration>,
9 pub write_interval: Duration,
10 pub read_grace: Duration,
11 pub transaction_size: usize,
12 pub nodes: Vec<Node>,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub enum Node {
17 Write(WriteNode),
18 ReadWrite(ReadWriteNode),
19}
20
21#[derive(Debug, Serialize, Deserialize)]
22pub struct ReadWriteNode {
23 pub node: WriteNode,
24}
25
26#[derive(Debug, Serialize, Deserialize)]
27pub struct WriteNode {
28 pub endpoint: NodeEndpoint,
29}
30
31#[derive(Default, Debug, Serialize, Deserialize, PartialEq, Eq, Hash)]
32pub struct NodeEndpoint {
33 pub host: String,
34 pub port: u16,
35}