#[derive(Debug, Clone)]
pub struct ParallelConfig {
pub parallelism: usize,
pub buffer_size: usize,
pub preserve_order: bool,
}
impl Default for ParallelConfig {
fn default() -> Self {
Self {
parallelism: num_cpus::get(),
buffer_size: 1000,
preserve_order: true,
}
}
}
impl ParallelConfig {
pub fn new(parallelism: usize, buffer_size: usize, preserve_order: bool) -> Self {
Self {
parallelism,
buffer_size,
preserve_order,
}
}
pub fn with_parallelism(mut self, parallelism: usize) -> Self {
self.parallelism = parallelism;
self
}
pub fn with_buffer_size(mut self, buffer_size: usize) -> Self {
self.buffer_size = buffer_size;
self
}
pub fn with_preserve_order(mut self, preserve_order: bool) -> Self {
self.preserve_order = preserve_order;
self
}
}