hermes_runtime_components/traits/
task.rs1use alloc::vec::Vec;
2
3use cgp::prelude::*;
4
5use crate::traits::stream::HasStreamType;
6
7#[async_trait]
8pub trait Task: Async {
9 async fn run(self);
10}
11
12#[derive_component(ConcurrentTaskRunnerComponent, ConcurrentTaskRunner<Runtime>)]
13#[async_trait]
14pub trait CanRunConcurrentTasks: HasStreamType {
15 async fn run_concurrent_tasks<T>(&self, tasks: Vec<T>)
16 where
17 T: Task;
18
19 async fn run_concurrent_task_stream<T>(&self, tasks: Self::Stream<T>)
20 where
21 T: Task;
22}