use super::*;
use crate::send_desc_passthru_handler;
use crate::send_desc_passthru_options;
use crate::send_desc_passthru_timing;
#[derive(Debug)]
pub struct Nonconfirmable<SD>(pub(crate) SD);
impl<SD: SendDescUnicast> SendDescUnicast for Nonconfirmable<SD> {}
impl<SD: Default> Default for Nonconfirmable<SD> {
#[inline]
fn default() -> Self {
Self(Default::default())
}
}
impl<SD, IC> SendDesc<IC, ()> for Nonconfirmable<SD>
where
SD: SendDesc<IC, ()> + Send,
IC: InboundContext,
{
send_desc_passthru_timing!(0);
send_desc_passthru_options!(0);
send_desc_passthru_handler!(0);
fn write_payload(
&self,
msg: &mut dyn MessageWrite,
socket_addr: &IC::SocketAddr,
) -> Result<(), Error> {
self.0.write_payload(msg, socket_addr)?;
msg.set_msg_type(MsgType::Non);
Ok(())
}
}