pub struct ParallelConfig { /* private fields */ }Expand description
Configuration for parallel processing behavior.
Controls thread pool size, chunking thresholds, resource limits, and performance tuning parameters.
§Security Limits
To prevent denial-of-service attacks and resource exhaustion, the following limits are enforced:
- Maximum threads: 128
- Maximum input size: 100MB (configurable)
- Maximum document count: 100,000 (configurable)
§Examples
use fast_yaml_parallel::ParallelConfig;
let config = ParallelConfig::new()
.with_thread_count(Some(8))
.with_min_chunk_size(2048);Implementations§
Source§impl ParallelConfig
impl ParallelConfig
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates default configuration (auto thread count).
§Examples
use fast_yaml_parallel::ParallelConfig;
let config = ParallelConfig::new();Sourcepub const fn with_thread_count(self, count: Option<usize>) -> Self
pub const fn with_thread_count(self, count: Option<usize>) -> Self
Sets thread pool size.
None: Use all available CPU cores (default, capped at 128)Some(0): Sequential processing (no parallelism)Some(n): Use exactlynthreads (max 128)
§Security
Thread count is capped at 128 to prevent resource exhaustion. Values exceeding this limit will be clamped at runtime.
§Examples
use fast_yaml_parallel::ParallelConfig;
let config = ParallelConfig::new().with_thread_count(Some(4));Sourcepub const fn with_max_input_size(self, size: usize) -> Self
pub const fn with_max_input_size(self, size: usize) -> Self
Sets maximum total input size in bytes.
Input exceeding this size will be rejected with ConfigError.
Default: 100MB
§Security
This limit prevents denial-of-service attacks via extremely large inputs.
§Examples
use fast_yaml_parallel::ParallelConfig;
// Allow up to 200MB
let config = ParallelConfig::new()
.with_max_input_size(200 * 1024 * 1024);Sourcepub const fn with_max_documents(self, count: usize) -> Self
pub const fn with_max_documents(self, count: usize) -> Self
Sets maximum number of documents allowed.
Input with more documents than this will be rejected with ConfigError.
Default: 100,000
§Security
This limit prevents denial-of-service attacks via excessive document counts.
§Examples
use fast_yaml_parallel::ParallelConfig;
// Allow up to 1 million documents
let config = ParallelConfig::new()
.with_max_documents(1_000_000);Sourcepub const fn with_min_chunk_size(self, size: usize) -> Self
pub const fn with_min_chunk_size(self, size: usize) -> Self
Sets minimum total size in bytes for parallel processing.
If total input size is below this threshold AND fewer than 4 documents, sequential processing will be used to avoid parallelism overhead. Default: 4KB
§Examples
use fast_yaml_parallel::ParallelConfig;
let config = ParallelConfig::new().with_min_chunk_size(2048);Sourcepub const fn with_max_chunk_size(self, size: usize) -> Self
pub const fn with_max_chunk_size(self, size: usize) -> Self
Sets maximum chunk size in bytes.
Large documents exceeding this will be processed sequentially. Default: 10MB (prevents memory spikes)
§Examples
use fast_yaml_parallel::ParallelConfig;
let config = ParallelConfig::new().with_max_chunk_size(5 * 1024 * 1024);Trait Implementations§
Source§impl Clone for ParallelConfig
impl Clone for ParallelConfig
Source§fn clone(&self) -> ParallelConfig
fn clone(&self) -> ParallelConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ParallelConfig
impl Debug for ParallelConfig
Auto Trait Implementations§
impl Freeze for ParallelConfig
impl RefUnwindSafe for ParallelConfig
impl Send for ParallelConfig
impl Sync for ParallelConfig
impl Unpin for ParallelConfig
impl UnwindSafe for ParallelConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more