#[derive(Debug)]
pub enum LinkSpeeds
{
AutonegotiationOfAllSupportedSpeeds,
AutonegotiationOfTheseSpeeds(HashSet<LinkSpeed>),
FixedWithoutAutonegotiation(LinkSpeed),
}
impl LinkSpeeds
{
#[inline(always)]
pub fn as_uint32_t(&self) -> uint32_t
{
match *self
{
LinkSpeeds::AutonegotiationOfAllSupportedSpeeds => ::dpdk_sys::ETH_LINK_SPEED_AUTONEG,
LinkSpeeds::AutonegotiationOfTheseSpeeds(ref linkSpeeds) =>
{
let mut bitsSet = ::dpdk_sys::ETH_LINK_SPEED_AUTONEG;
for linkSpeed in linkSpeeds
{
bitsSet |= *linkSpeed as u32;
}
bitsSet
},
LinkSpeeds::FixedWithoutAutonegotiation(ref fixedLinkSpeed) => *fixedLinkSpeed as u32 | ::dpdk_sys::ETH_LINK_SPEED_FIXED,
}
}
}
impl Default for LinkSpeeds
{
#[inline(always)]
fn default() -> Self
{
LinkSpeeds::AutonegotiationOfAllSupportedSpeeds
}
}