use core::marker::PhantomData;
use core::net::IpAddr;
#[doc(alias = "IcmpType")]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum IcmpTypeChoice {
EchoRequest,
EchoReply,
DestUnreach,
TimeExceeded,
Redirect,
}
#[doc(alias = "ICMP")]
#[doc(alias = "ICMPv6")]
#[doc(alias = "RFC 792")]
#[doc(alias = "RFC792")]
#[doc(alias = "RFC 4443")]
#[doc(alias = "RFC4443")]
#[doc(alias = "ECHO_REQUEST")]
#[doc(alias = "ECHO_REPLY")]
#[doc(alias = "DEST_UNREACH")]
#[doc(alias = "TIME_EXCEEDED")]
#[doc(alias = "REDIRECT")]
#[doc(alias = "GATEWAY")]
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct IcmpSpec<'a> {
pub type_choice: Option<IcmpTypeChoice>,
pub icmp_type: Option<u8>,
pub icmp_code: Option<u8>,
pub id: Option<u16>,
pub seq: Option<u16>,
pub gateway: Option<IpAddr>,
pub _marker: PhantomData<&'a ()>,
}