tower_web/util/buf_stream/bytes.rs
1use super::BufStream;
2
3use bytes::Bytes;
4use futures::Poll;
5
6use std::io;
7
8impl BufStream for Bytes {
9 type Item = io::Cursor<Bytes>;
10 type Error = ();
11
12 fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
13 use std::mem;
14
15 if self.is_empty() {
16 return Ok(None.into());
17 }
18
19 let bytes = mem::replace(self, Bytes::new());
20 let buf = io::Cursor::new(bytes);
21
22 Ok(Some(buf).into())
23 }
24}