1#[derive(Debug, Clone)]
3pub struct ParallelConfig {
4 pub parallelism: usize,
6 pub buffer_size: usize,
8 pub preserve_order: bool,
10}
11
12impl Default for ParallelConfig {
13 fn default() -> Self {
14 Self {
15 parallelism: num_cpus::get(),
16 buffer_size: 1000,
17 preserve_order: true,
18 }
19 }
20}
21
22impl ParallelConfig {
23 pub fn new(parallelism: usize, buffer_size: usize, preserve_order: bool) -> Self {
25 Self {
26 parallelism,
27 buffer_size,
28 preserve_order,
29 }
30 }
31
32 pub fn with_parallelism(mut self, parallelism: usize) -> Self {
34 self.parallelism = parallelism;
35 self
36 }
37
38 pub fn with_buffer_size(mut self, buffer_size: usize) -> Self {
40 self.buffer_size = buffer_size;
41 self
42 }
43
44 pub fn with_preserve_order(mut self, preserve_order: bool) -> Self {
46 self.preserve_order = preserve_order;
47 self
48 }
49}