diff options
Diffstat (limited to 'src/actions.rs')
-rw-r--r-- | src/actions.rs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/actions.rs b/src/actions.rs index bf78414..d006207 100644 --- a/src/actions.rs +++ b/src/actions.rs @@ -1,6 +1,7 @@ use std::fmt; use anyhow::Result; +use async_scoped::TokioScope; use async_trait::async_trait; use log::{debug, info, warn}; use serde::Deserialize; @@ -119,3 +120,14 @@ pub async fn get_actions<'a>( result } + +pub async fn run_actions( + actions: &[&(dyn Action<'_> + Sync)], + params: Option<MessageParams<'_, '_>>, +) { + TokioScope::scope_and_block(|s| { + for &action in actions { + s.spawn(action.run(params.as_ref())); + } + }); +} |