turbomcp_protocol/context/
ping.rs1use std::collections::HashMap;
7
8use chrono::{DateTime, Utc};
9use serde::{Deserialize, Serialize};
10
11use super::capabilities::PingOrigin;
12
13#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct PingContext {
16 pub origin: PingOrigin,
18 pub response_threshold_ms: Option<u64>,
20 pub payload: Option<serde_json::Value>,
22 pub health_metadata: HashMap<String, serde_json::Value>,
24 pub connection_metrics: Option<ConnectionMetrics>,
26}
27
28#[derive(Debug, Clone, Serialize, Deserialize)]
30pub struct ConnectionMetrics {
31 pub rtt_ms: Option<f64>,
33 pub packet_loss: Option<f64>,
35 pub uptime_seconds: Option<u64>,
37 pub bytes_sent: Option<u64>,
39 pub bytes_received: Option<u64>,
41 pub last_success: Option<DateTime<Utc>>,
43}