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}