turbomcp_protocol/types/
ping.rs1use serde::{Deserialize, Serialize};
7
8#[derive(Debug, Clone, Serialize, Deserialize, Default)]
10pub struct PingParams {
11 #[serde(skip_serializing_if = "Option::is_none")]
13 pub data: Option<serde_json::Value>,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
18pub struct PingRequest {
19 #[serde(flatten)]
21 pub params: PingParams,
22}
23
24#[derive(Debug, Clone, Serialize, Deserialize)]
26pub struct PingResult {
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub data: Option<serde_json::Value>,
30 #[serde(rename = "_meta", skip_serializing_if = "Option::is_none")]
32 pub _meta: Option<serde_json::Value>,
33}
34
35impl PingResult {
36 pub fn new(data: Option<serde_json::Value>) -> Self {
38 Self { data, _meta: None }
39 }
40
41 pub fn empty() -> Self {
43 Self::new(None)
44 }
45
46 pub fn with_meta(mut self, meta: serde_json::Value) -> Self {
48 self._meta = Some(meta);
49 self
50 }
51}