fn on_artifact(
        &self,
        msg: artifact::Artifact,
        advert: p2p::GossipAdvert,
        peer_id: &NodeId,
    ) -> Result<(), OnArtifactError<artifact::Artifact>> {
        let tag: ArtifactTag = (&msg).into();
        if let Some(client) = self.clients.get(&tag) {
            return client.on_artifact(self.time_source.as_ref(), msg, advert, *peer_id);
        }
        Err(OnArtifactError::NotProcessed(Box::new(msg)))
    }
/// When a new artifact is received by *Gossip*, it is forwarded to
/// the artifact manager via an `on_artifact` call, which then forwards it
/// to be processed by the corresponding artifact client based on the
/// artifact type.
///
///The method returns an `OnArtifactError::NotProcessed` if no clients
/// were able to process it or an `OnArtifactError::ArtifactPoolError`
/// if any other error has occurred.
When a new artifact is received by *Gossip*, it is forwarded to
the artifact manager via an `on_artifact` call, which then forwards it
to be processed by the corresponding artifact client based on the
artifact type.

The method returns an `OnArtifactError::NotProcessed` if no clients
were able to process it or an `OnArtifactError::ArtifactPoolError`
if any other error has occurred.
When a new artifact is received by * Gossip * it is forwarded to the artifact manager via an ` on_artifact ` call which then forwards it to be processed by the corresponding artifact client based on the artifact type . The method returns an ` OnArtifactError :: NotProcessed ` if no clients were able to process it or an ` OnArtifactError :: ArtifactPoolError ` if any other error has occurred .
fn on_artifact(
        &self,
        msg: artifact::Artifact,
        advert: p2p::GossipAdvert,
        peer_id: &NodeId,
    ) -> Result<(), OnArtifactError<artifact::Artifact>> {
        let tag: ArtifactTag = (&msg).into();
        if let Some(client) = self.clients.get(&tag) {
            return client.on_artifact(self.time_source.as_ref(), msg, advert, *peer_id);
        }
        Err(OnArtifactError::NotProcessed(Box::new(msg)))
    }
fn on_artifact ( & self , msg : artifact :: Artifact , advert : p2p :: GossipAdvert , peer_id : & NodeId , ) -> Result < ( ) , OnArtifactError < artifact :: Artifact > > { let tag : ArtifactTag = ( & msg ) . into ( ) ; if let Some ( client ) = self . clients . get ( & tag ) { return client . on_artifact ( self . time_source . as_ref ( ) , msg , advert , * peer_id ) ; } Err ( OnArtifactError :: NotProcessed ( Box :: new ( msg ) ) ) }
When a new artifact is received by *Gossip*, it is forwarded to
the artifact manager via an `on_artifact` call, which then forwards it
to be processed by the corresponding artifact client based on the
artifact type.
When a new artifact is received by * Gossip * it is forwarded to the artifact manager via an ` on_artifact ` call which then forwards it to be processed by the corresponding artifact client based on the artifact type .
&self
msg
artifact::Artifact
advert
p2p::GossipAdvert
peer_id
&NodeId
&self
msg
artifact::Artifact
advert
p2p::GossipAdvert
peer_id
&NodeId