synwire_core/runnables/
config.rs1use serde::{Deserialize, Serialize};
4use serde_json::Value;
5use std::collections::HashMap;
6use std::sync::Arc;
7use uuid::Uuid;
8
9#[derive(Debug, Clone, Default, Serialize, Deserialize)]
11pub struct RunnableConfig {
12 #[serde(default, skip_serializing_if = "Option::is_none")]
14 pub tags: Option<Vec<String>>,
15 #[serde(default, skip_serializing_if = "Option::is_none")]
17 pub metadata: Option<HashMap<String, Value>>,
18 #[serde(default, skip_serializing_if = "Option::is_none")]
20 pub max_concurrency: Option<usize>,
21 #[serde(default, skip_serializing_if = "Option::is_none")]
23 pub run_name: Option<String>,
24 #[serde(default, skip_serializing_if = "Option::is_none")]
26 pub run_id: Option<Uuid>,
27 #[serde(default, skip_serializing_if = "Option::is_none")]
29 pub configurable: Option<HashMap<String, Value>>,
30 #[serde(skip)]
32 pub callbacks: Option<Vec<Arc<dyn CallbackHandlerDyn>>>,
33 #[cfg(feature = "tracing")]
35 #[serde(default, skip_serializing_if = "Option::is_none")]
36 pub tracing_config: Option<crate::observability::TracingConfig>,
37}
38
39pub trait CallbackHandlerDyn: Send + Sync + std::fmt::Debug {}