use core::marker::PhantomData;
use core::net::IpAddr;
#[doc(alias = "OspfPacketType")]
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum OspfType {
Hello,
Dbd,
Lsr,
Lsu,
LsAck,
}
#[doc(alias = "OSPF")]
#[doc(alias = "OSPFv2")]
#[doc(alias = "OSPFv3")]
#[doc(alias = "RFC 2328")]
#[doc(alias = "RFC2328")]
#[doc(alias = "RFC 5340")]
#[doc(alias = "RFC5340")]
#[doc(alias = "HELLO")]
#[doc(alias = "DBD")]
#[doc(alias = "LSR")]
#[doc(alias = "LSU")]
#[doc(alias = "LSACK")]
#[doc(alias = "ROUTER_ID")]
#[doc(alias = "AREA_ID")]
#[doc(alias = "HELLO_INTERVAL")]
#[doc(alias = "DEAD_INTERVAL")]
#[doc(alias = "PRIORITY")]
#[derive(Debug, Clone, PartialEq, Eq, Default)]
pub struct OspfSpec<'a> {
pub ospf_type: Option<OspfType>,
pub router_id: Option<IpAddr>,
pub area_id: Option<u32>,
pub hello_interval: Option<u16>,
pub dead_interval: Option<u32>,
pub priority: Option<u8>,
pub _marker: PhantomData<&'a ()>,
}