Skip to main content

vil_trigger_core/
process.rs

1// =============================================================================
2// vil_trigger_core::process — create_trigger helper
3// =============================================================================
4//
5// Convenience constructor for wrapping a TriggerSource in an Arc for shared
6// ownership within a VIL ServiceProcess context.
7// =============================================================================
8
9use std::sync::Arc;
10
11use crate::traits::TriggerSource;
12
13/// Wrap any `TriggerSource` implementor in an `Arc<dyn TriggerSource>`.
14///
15/// # Usage
16/// ```ignore
17/// use vil_trigger_core::process::create_trigger;
18/// let shared = create_trigger(MyConcreteTrigger::new(config));
19/// ```
20pub fn create_trigger<T: TriggerSource + 'static>(source: T) -> Arc<dyn TriggerSource> {
21    Arc::new(source)
22}