use core::marker::PhantomData;
use core::net::IpAddr;
#[doc(alias = "NdpMessageType")]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum NdpType {
RouterSolicit,
RouterAdvert,
NeighborSolicit,
NeighborAdvert,
Redirect,
}
#[doc(alias = "NDP")]
#[doc(alias = "RFC 4861")]
#[doc(alias = "RFC4861")]
#[doc(alias = "SLAAC")]
#[doc(alias = "ICMPv6")]
#[doc(alias = "ROUTER_SOLICIT")]
#[doc(alias = "ROUTER_ADVERT")]
#[doc(alias = "NEIGHBOR_SOLICIT")]
#[doc(alias = "NEIGHBOR_ADVERT")]
#[doc(alias = "REDIRECT")]
#[doc(alias = "TARGET")]
#[doc(alias = "SLLA")]
#[doc(alias = "TLLA")]
#[doc(alias = "ROUTER_LIFETIME")]
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct NdpSpec<'a> {
pub ndp_type: Option<NdpType>,
pub target: Option<IpAddr>,
pub slla: Option<[u8; 6]>,
pub tlla: Option<[u8; 6]>,
pub router_lifetime: Option<u16>,
pub _marker: PhantomData<&'a ()>,
}