pub trait Producer
{
#[inline(always)]
fn producer(ring: *mut rte_ring, object: *mut c_void) -> Result<(), ProducerError>;
#[inline(always)]
fn producerBulk(ring: *mut rte_ring, table: *mut *const c_void, count: u32) -> Result<(), ProducerError>;
#[inline(always)]
fn producerBurst(ring: *mut rte_ring, table: *mut *const c_void, count: u32) -> u32;
#[inline(always)]
fn processProducerResult(result: c_int) -> Result<(), ProducerError>
{
if likely(result == 0)
{
return Ok(())
}
else
{
match result
{
NegativeE::EDQUOT => Err(ProducerError::HighWaterMarkExceeded),
NegativeE::ENOBUFS => Err(ProducerError::NoRoomAvailableAndNothingProducerd),
unexpected @ _ => panic!("Unexpected error code '{}' from ring queue producer operation ()", unexpected),
}
}
}
}