pub trait StreamSink<T> {
    // Required method
    fn run<'life0, 'async_trait>(
        self: Box<Self>,
        input: Pin<Box<dyn Stream<Item = T> + Send + 'life0>>,
    ) -> Pin<Box<dyn Future<Output = Result<(), ()>> + Send + 'async_trait>>
       where 'life0: 'async_trait,
             Self: 'async_trait;
}