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}