pub trait Pipeline: Linkable {
    type IN: Send + Sync;
    // Required method
    fn process<'life0, 'async_trait>(
        &'life0 self,
        input: Self::IN,
    ) -> Pin<Box<dyn Future<Output = Result<Self::OUT, Error>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}