tower_web/util/buf_stream/
std.rs

1use util::BufStream;
2
3use bytes::Buf;
4use futures::{Poll, Stream};
5
6/// Wraps a `futures::Stream` that yields `Buf` values and provides a
7/// `BufStream` implementation.
8#[derive(Debug)]
9pub struct StdStream<T>(T);
10
11impl<T> StdStream<T> {
12    /// Create a new `StdStream` containing `stream`.
13    pub fn new(stream: T) -> StdStream<T> {
14        StdStream(stream)
15    }
16}
17
18impl<T> BufStream for StdStream<T>
19where
20    T: Stream,
21    T::Item: Buf,
22{
23    type Item = T::Item;
24    type Error = T::Error;
25
26    fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
27        self.0.poll()
28    }
29}