pub trait C3p0Pool: Clone + Send + Sync {
type Conn;
fn transaction<'life0, 'async_trait, T, E, F, Fut>(
&'life0 self,
tx: F
) -> Pin<Box<dyn Future<Output = Result<T, E>> + Send + 'async_trait, Global>>
where
'life0: 'async_trait,
T: 'async_trait + Send,
E: 'async_trait + Send + From<C3p0Error>,
F: 'async_trait + Send + FnOnce(Self::Conn) -> Fut,
Fut: 'async_trait + Send + Future<Output = Result<T, E>>,
Self: 'async_trait;
}