#[derive(Debug, Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub struct DpdkDeviceArguments<'a>(NonNull<rte_devargs>, PhantomData<&'a rte_devargs>);
impl<'a> DpdkDeviceArguments<'a>
{
#[inline(always)]
pub fn next(&self) -> Option<Self>
{
let next = self.reference().next.tqe_next;
if next.is_null()
{
None
}
else
{
Some(DpdkDeviceArguments(unsafe { NonNull::new_unchecked(next) }, PhantomData))
}
}
#[inline(always)]
pub fn policy(&self) -> rte_dev_policy
{
self.reference().policy
}
#[inline(always)]
pub fn bus(&self) -> Option<DpdkBus>
{
let bus = self.reference().bus;
if bus.is_null()
{
None
}
else
{
Some(DpdkBus(unsafe { NonNull::new_unchecked(bus) }))
}
}
#[inline(always)]
fn reference(&self) -> &'a rte_devargs
{
unsafe { & * self.0.as_ptr() }
}
}