// Producer hooks run on the logical producer before partition routing and
// when its broker receipt (or send failure) becomes available.
///|
pub struct ProducerInterceptor {
priv before_send : ((ProducerMessage) -> ProducerMessage)?
priv on_send_result : ((ProducerMessage, Result[SendReceipt, Error]) -> Unit)?
}
///|
pub fn ProducerInterceptor::new(
before_send? : (ProducerMessage) -> ProducerMessage,
on_send_result? : (ProducerMessage, Result[SendReceipt, Error]) -> Unit,
) -> ProducerInterceptor {
{ before_send, on_send_result, }
}