Advertisement
Guest User

Untitled

a guest
Dec 12th, 2019
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Rust 0.50 KB | None | 0 0
  1. pub trait Middleware<Item>: Debug + Send {
  2.     fn create<In>(self, previous: In) -> Pin<Box<dyn Stream<Item = Item>>>
  3.     where
  4.         In: Stream<Item = Item> + 'static,
  5.        Self: Sized + Clone;
  6. }
  7.  
  8. pub trait MiddlewareExt: Stream {
  9.    fn use_middleware<M>(self, middleware: M) -> Pin<Box<dyn Stream<Item = Self::Item>>>
  10.    where
  11.        M: Middleware<Self::Item> + Clone,
  12.        Self: Sized + 'static,
  13.     {
  14.         middleware.create(self)
  15.     }
  16. }
  17. impl<T: Stream> MiddlewareExt for T {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement