#[derive(Debug, Clone)]
#[non_exhaustive]
pub struct ResourceLimits {
pub max_concurrent_nodes: usize,
pub max_execution_records: usize,
pub max_checkpoint_bytes: usize,
pub max_dag_nodes: usize,
pub max_sequential_steps: usize,
}
impl Default for ResourceLimits {
fn default() -> Self {
Self {
max_concurrent_nodes: 64,
max_execution_records: 10_000,
max_checkpoint_bytes: 10 * 1024 * 1024,
max_dag_nodes: 10_000,
max_sequential_steps: 1_000,
}
}
}
impl ResourceLimits {
pub fn with_max_concurrent_nodes(mut self, n: usize) -> Self {
self.max_concurrent_nodes = n;
self
}
pub fn with_max_execution_records(mut self, n: usize) -> Self {
self.max_execution_records = n;
self
}
pub fn with_max_checkpoint_bytes(mut self, n: usize) -> Self {
self.max_checkpoint_bytes = n;
self
}
pub fn with_max_dag_nodes(mut self, n: usize) -> Self {
self.max_dag_nodes = n;
self
}
pub fn with_max_sequential_steps(mut self, n: usize) -> Self {
self.max_sequential_steps = n;
self
}
}