homestar-runtime 0.3.0

Homestar runtime implementation
Documentation
//! [Workflow] settings for a worker's run/execution.
//!
//! [Workflow]: homestar_workflow::Workflow

use std::time::Duration;

/// Workflow settings.
#[derive(Debug, Clone, PartialEq)]
pub struct Settings {
    /// Number of retries for a given workflow.
    pub(crate) retries: u32,
    /// Maximum delay between retries.
    pub(crate) retry_max_delay: Duration,
    /// Initial delay between retries.
    pub(crate) retry_initial_delay: Duration,
    /// Timeout for a given workflow.
    pub(crate) timeout: Duration,
}

#[cfg(all(not(test), not(feature = "test-utils")))]
impl Default for Settings {
    fn default() -> Self {
        Self {
            retries: 3,
            retry_max_delay: Duration::new(60, 0),
            retry_initial_delay: Duration::from_millis(500),
            timeout: Duration::new(3600, 0),
        }
    }
}

#[cfg(any(test, feature = "test-utils"))]
#[cfg_attr(docsrs, doc(cfg(feature = "test-utils")))]
impl Default for Settings {
    fn default() -> Self {
        Self {
            retries: 0,
            retry_max_delay: Duration::new(1, 0),
            retry_initial_delay: Duration::from_millis(50),
            timeout: Duration::from_secs(3600),
        }
    }
}