connection_utils/test/
test_options.rs1use std::ops::RangeInclusive;
2use cs_utils::{random_number, traits::Random};
3
4#[derive(Debug, Clone)]
6pub struct TestOptions {
7 data_len: usize,
9 latency_range: RangeInclusive<u64>,
11}
12
13impl TestOptions {
14 pub fn with_latency(
16 self,
17 latency_range: RangeInclusive<u64>,
18 ) -> TestOptions {
19 return TestOptions {
20 latency_range,
21 ..self
22 }
23 }
24
25 pub fn with_data_len(
27 self,
28 items_count: usize,
29 ) -> TestOptions {
30 return TestOptions {
31 data_len: items_count,
32 ..self
33 }
34 }
35
36 pub fn data_len(&self) -> usize {
38 return self.data_len;
39 }
40
41 pub fn latency_range(&self) -> RangeInclusive<u64> {
43 return self.latency_range.clone();
44 }
45}
46
47impl Default for TestOptions {
48 fn default() -> TestOptions {
49 return TestOptions {
50 data_len: 128,
51 latency_range: (0..=0),
52 };
53 }
54}
55
56impl Random for TestOptions {
57 fn random() -> TestOptions {
58 let min: u64 = random_number(0..5);
59 let max: u64 = random_number(5..50);
60
61 return TestOptions {
62 data_len: random_number(128..=256),
63 latency_range: (min..=max),
64 };
65 }
66}