useasync_trait::async_trait;usecrate::Config;#[async_trait]pub(crate)traitNotificationHandler<C: Config>: Sync + Send {/// Should input processing wait until this notification is processed?
/// Handler might still use async/await, if it is blocking - the processing loop will await
/// on handler, otherwise it will spawn-and-forget.
fnblocking(&self)->bool;
async fnhandle(&self, packet_source:C::Address, notification:C::EncodedData);}