fn publish_trace(&self, state: &TracerState) {
        let max_received_ttl = if let Some(target_ttl) = state.target_ttl() {
            target_ttl
        } else {
            state
                .max_received_ttl()
                .map_or(TimeToLive(0), |max_received_ttl| {
                    let max_sent_ttl = state.ttl() - TimeToLive(1);
                    max_sent_ttl.min(max_received_ttl + TimeToLive(1))
                })
        };
        let probes = state.probes();
        let largest_ttl = max_received_ttl;
        let reason = if state.target_found() {
            CompletionReason::TargetFound
        } else {
            CompletionReason::RoundTimeLimitExceeded
        };
        (self.publish)(&TracerRound::new(probes, largest_ttl, reason));
    }
/// Publish details of all `Probe` in the completed round.
///
/// If the round completed without receiving an `EchoReply` from the target host then we also publish the next
/// `Probe` which is assumed to represent the TTL of the target host.
Publish details of all `Probe` in the completed round.
If the round completed without receiving an `EchoReply` from the target host then we also publish the next
`Probe` which is assumed to represent the TTL of the target host.
Publish details of all ` Probe ` in the completed round . If the round completed without receiving an ` EchoReply ` from the target host then we also publish the next ` Probe ` which is assumed to represent the TTL of the target host .
fn publish_trace(&self, state: &TracerState) {
        let max_received_ttl = if let Some(target_ttl) = state.target_ttl() {
            target_ttl
        } else {
            state
                .max_received_ttl()
                .map_or(TimeToLive(0), |max_received_ttl| {
                    let max_sent_ttl = state.ttl() - TimeToLive(1);
                    max_sent_ttl.min(max_received_ttl + TimeToLive(1))
                })
        };
        let probes = state.probes();
        let largest_ttl = max_received_ttl;
        let reason = if state.target_found() {
            CompletionReason::TargetFound
        } else {
            CompletionReason::RoundTimeLimitExceeded
        };
        (self.publish)(&TracerRound::new(probes, largest_ttl, reason));
    }
fn publish_trace ( & self , state : & TracerState ) { let max_received_ttl = if let Some ( target_ttl ) = state . target_ttl ( ) { target_ttl } else { state . max_received_ttl ( ) . map_or ( TimeToLive ( 0 ) , | max_received_ttl | { let max_sent_ttl = state . ttl ( ) - TimeToLive ( 1 ) ; max_sent_ttl . min ( max_received_ttl + TimeToLive ( 1 ) ) } ) } ; let probes = state . probes ( ) ; let largest_ttl = max_received_ttl ; let reason = if state . target_found ( ) { CompletionReason :: TargetFound } else { CompletionReason :: RoundTimeLimitExceeded } ; ( self . publish ) ( & TracerRound :: new ( probes , largest_ttl , reason ) ) ; }
Publish details of all `Probe` in the completed round.
Publish details of all ` Probe ` in the completed round .
&self
state
&TracerState