use std::sync::Arc;
use serde_json::Value as JsonValue;
use crate::runnable::Runnable;
use crate::types::RetryPolicy;
#[derive(Clone)]
pub struct StateNodeSpec {
pub name: String,
pub runnable: Arc<dyn Runnable>,
pub retry_policy: Option<RetryPolicy>,
pub metadata: Option<JsonValue>,
pub ends: Option<Vec<String>>,
}
impl StateNodeSpec {
pub fn new(name: impl Into<String>, runnable: Arc<dyn Runnable>) -> Self {
Self {
name: name.into(),
runnable,
retry_policy: None,
metadata: None,
ends: None,
}
}
}