use std::time::Duration;
use crate::{Result, TaskMonitorOptions};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct DecompileOptions {
pub timeout_seconds: u64,
pub monitor: TaskMonitorOptions,
}
impl DecompileOptions {
pub const fn new(timeout_seconds: u64) -> Self {
Self {
timeout_seconds,
monitor: TaskMonitorOptions::none(),
}
}
pub fn with_monitor(mut self, monitor: TaskMonitorOptions) -> Self {
self.monitor = monitor;
self
}
pub fn with_monitor_timeout(mut self, timeout: Duration) -> Result<Self> {
self.monitor = TaskMonitorOptions::timeout(timeout)?;
Ok(self)
}
}