use std::time::Duration;
#[derive(Clone, Debug, Default, PartialEq, Eq)]
#[non_exhaustive]
pub struct DispatchConfig {
pub profile: Option<String>,
pub ulp_budget: Option<u8>,
pub timeout: Option<Duration>,
pub label: Option<String>,
pub max_output_bytes: Option<usize>,
pub workgroup_override: Option<[u32; 3]>,
pub grid_override: Option<[u32; 3]>,
pub fixpoint_iterations: Option<u32>,
pub speculation: Option<crate::speculate::SpeculationMode>,
pub persistent_thread: Option<crate::persistent::PersistentThreadMode>,
pub cooperative: bool,
}
impl DispatchConfig {
#[must_use]
pub fn new(
profile: Option<String>,
ulp_budget: Option<u8>,
timeout: Option<Duration>,
label: Option<String>,
) -> Self {
Self {
profile,
ulp_budget,
timeout,
label,
max_output_bytes: None,
workgroup_override: None,
grid_override: None,
fixpoint_iterations: None,
speculation: None,
persistent_thread: None,
cooperative: false,
}
}
}