use std::pin::Pin;
use coap_lite::Packet;
use futures::Stream;
pub trait PacketHandler<Endpoint>: Clone {
fn handle<'a>(
&'a self,
packet: Packet,
peer: Endpoint,
) -> Pin<Box<dyn Stream<Item = Packet> + Send + 'a>>;
}
pub trait IntoHandler<Handler, Endpoint>
where
Handler: PacketHandler<Endpoint> + Send + 'static,
{
fn into_handler(self, mtu: Option<u32>) -> Handler;
}
impl<Handler, Endpoint> IntoHandler<Handler, Endpoint> for Handler
where
Handler: PacketHandler<Endpoint> + Send + 'static,
{
fn into_handler(self, _mtu: Option<u32>) -> Handler {
self
}
}