crb_superagent/supervisor/
forward.rs

1use crb_agent::{Address, Agent};
2use crb_core::Tag;
3use crb_runtime::{Runtime, Task, TaskHandle};
4
5pub trait ForwardTo<A: Agent, T: Tag> {
6    type Runtime: Runtime;
7
8    fn into_trackable(self, address: Address<A>, tag: T) -> Self::Runtime;
9
10    fn forward_to(self, address: Address<A>, tag: T) -> TaskHandle
11    where
12        Self: Sized,
13        Self::Runtime: Task,
14    {
15        self.into_trackable(address, tag).spawn()
16    }
17}