asparit/core/driver.rs
1#[cfg(feature = "default-executor")]
2use crate::DefaultExecutor;
3use crate::Executor;
4
5pub trait Driver<'a, T1, T2 = (), T3 = ()>: Sized
6where
7 T1: Send + 'a,
8 T2: Send + 'a,
9 T3: Send + 'a,
10{
11 fn exec_with<E>(self, executor: E) -> E::Result
12 where
13 E: Executor<'a, T1, T2, T3>;
14
15 #[cfg(feature = "default-executor")]
16 fn exec(self) -> <DefaultExecutor as Executor<'a, T1, T2, T3>>::Result {
17 self.exec_with(DefaultExecutor::default())
18 }
19}