tower_web/util/buf_stream/
empty.rs1use bytes::Buf;
2use futures::{Async, Poll};
3use std::marker::PhantomData;
4use util::buf_stream::BufStream;
5
6#[derive(Debug, Copy, Clone)]
8pub struct Empty<Item, Error>(PhantomData<(Item, Error)>);
9
10pub fn empty<Item, Error>() -> Empty<Item, Error> {
12 Default::default()
13}
14
15impl<Item, Error> Empty<Item, Error> {
16 pub fn new() -> Self {
18 Default::default()
19 }
20}
21
22impl<Item, Error> Default for Empty<Item, Error> {
23 fn default() -> Self {
24 Empty(Default::default())
25 }
26}
27
28impl<Item, Error> BufStream for Empty<Item, Error>
29where
30 Item: Buf,
31{
32 type Item = Item;
33 type Error = Error;
34
35 fn poll(&mut self) -> Poll<Option<Self::Item>, Self::Error> {
36 Ok(Async::Ready(None))
37 }
38}