use std::marker::PhantomData;
pub trait ResponseMarker {}
pub struct MTs;
impl ResponseMarker for MTs {}
pub struct MIter<MItem: ResponseMarker>(PhantomData<MItem>);
impl<MItem> ResponseMarker for MIter<MItem> where MItem: ResponseMarker {}
pub trait HandlerReturnMarker {}
pub struct MResponse<MValue: ResponseMarker>(PhantomData<MValue>);
impl<MValue> HandlerReturnMarker for MResponse<MValue> where MValue: ResponseMarker {}
pub struct MFuture<MReturn: HandlerReturnMarker>(PhantomData<MReturn>);
impl<MReturn> HandlerReturnMarker for MFuture<MReturn> where MReturn: HandlerReturnMarker {}
pub struct MStream<MValue: ResponseMarker>(PhantomData<MValue>);
impl<MValue> HandlerReturnMarker for MStream<MValue> where MValue: ResponseMarker {}