1use super::FangProcCaller;
2use std::future::Future;
3
4pub use dispatch::*;
5
6#[cfg(feature = "__rt_threaded__")]
7mod dispatch {
8 pub trait SendSyncOnThreaded: Send + Sync {}
9 impl<T: Send + Sync> SendSyncOnThreaded for T {}
10
11 #[allow(unused)]
12 pub trait SendOnThreaded: Send {}
13 impl<T: Send> SendOnThreaded for T {}
14}
15#[cfg(not(feature = "__rt_threaded__"))]
16mod dispatch {
17 pub trait SendSyncOnThreaded {}
18 impl<T> SendSyncOnThreaded for T {}
19
20 pub trait SendOnThreaded {}
21 impl<T> SendOnThreaded for T {}
22}
23
24#[allow(unused)]
25pub trait SendOnThreadedFuture<T>: Future<Output = T> + SendOnThreaded {}
26impl<T, F: Future<Output = T> + SendOnThreaded> SendOnThreadedFuture<T> for F {}
27
28pub(crate) trait FPCBound: FangProcCaller + SendSyncOnThreaded {}
29impl<T: FangProcCaller + SendSyncOnThreaded> FPCBound for T {}