pub fn tap_observer(
core: &Core,
binding: &Arc<dyn ProducerBinding>,
source: NodeId,
data_fn_id: Option<FnId>,
error_fn_id: Option<FnId>,
complete_fn_id: Option<FnId>,
) -> NodeIdExpand description
Like tap but with lifecycle observer callbacks. Each callback is
optional (None = skip that lifecycle event).
data_fn_id: called on each DATA viainvoke_tap_fn.error_fn_id: called on ERROR viainvoke_tap_error_fn.complete_fn_id: called on COMPLETE viainvoke_tap_complete_fn.
All messages are forwarded unchanged regardless of callback presence.