use core::marker::PhantomData;
use core::net::IpAddr;
#[doc(alias = "OPER")]
#[doc(alias = "RFC826")]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum ArpOpcode {
Request,
Reply,
}
#[doc(alias = "ARP")]
#[doc(alias = "RFC 826")]
#[doc(alias = "RFC 5227")]
#[doc(alias = "0x0806")]
#[doc(alias = "REQUEST")]
#[doc(alias = "REPLY")]
#[doc(alias = "GRATUITOUS")]
#[doc(alias = "SENDERMAC")]
#[doc(alias = "SENDERIP")]
#[doc(alias = "TARGETMAC")]
#[doc(alias = "TARGETIP")]
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct ArpSpec<'a> {
pub opcode: Option<ArpOpcode>,
pub is_gratuitous: bool,
pub sha: Option<[u8; 6]>,
pub spa: Option<IpAddr>,
pub tha: Option<[u8; 6]>,
pub tpa: Option<IpAddr>,
pub _marker: PhantomData<&'a ()>,
}