From 34f528a3b4063b4a25915e60d7f22ee1fb2d1bd9 Mon Sep 17 00:00:00 2001 From: hozan23 Date: Tue, 28 May 2024 15:14:34 +0200 Subject: jsonrpc: add comments & remove debugging code --- jsonrpc/src/message.rs | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'jsonrpc/src/message.rs') diff --git a/jsonrpc/src/message.rs b/jsonrpc/src/message.rs index 1f296cd..36ece38 100644 --- a/jsonrpc/src/message.rs +++ b/jsonrpc/src/message.rs @@ -19,47 +19,75 @@ pub const INVALID_PARAMS_ERROR_CODE: i32 = -32602; /// Internal error: Internal JSON-RPC error. pub const INTERNAL_ERROR_CODE: i32 = -32603; +/// SubscriptionID is used to identify a subscription. pub type SubscriptionID = u32; +/// Request represents a JSON-RPC request message. +/// It includes the JSON-RPC version, an identifier for the request, the method +/// to be invoked, and optional parameters. #[derive(Debug, Serialize, Deserialize)] pub struct Request { + /// JSON-RPC version, typically "2.0". pub jsonrpc: String, + /// Unique identifier for the request, can be a number or a string. pub id: serde_json::Value, + /// The name of the method to be invoked. pub method: String, + /// Optional parameters for the method. #[serde(skip_serializing_if = "Option::is_none")] pub params: Option, } +/// Response represents a JSON-RPC response message. +/// It includes the JSON-RPC version, an identifier matching the request, the result of the request, +/// and an optional error. #[derive(Debug, Serialize, Deserialize)] #[serde(deny_unknown_fields)] pub struct Response { + /// JSON-RPC version, typically "2.0". pub jsonrpc: String, + /// Unique identifier for the request, can be a number or a string. #[serde(skip_serializing_if = "Option::is_none")] pub id: Option, + /// Result of the request if it was successful. #[serde(skip_serializing_if = "Option::is_none")] pub result: Option, + /// Error object if the request failed. #[serde(skip_serializing_if = "Option::is_none")] pub error: Option, } +/// Notification represents a JSON-RPC notification message. #[derive(Debug, Serialize, Deserialize)] pub struct Notification { + /// JSON-RPC version, typically "2.0". pub jsonrpc: String, + /// The name of the method to be invoked. pub method: String, + /// Optional parameters for the method. #[serde(skip_serializing_if = "Option::is_none")] pub params: Option, } +/// NotificationResult represents the result of a subscription notification. +/// It includes the result and the subscription ID that triggered the notification. #[derive(Debug, Serialize, Deserialize)] pub struct NotificationResult { + /// Optional data about the notification. pub result: Option, + /// ID of the subscription that triggered the notification. pub subscription: SubscriptionID, } +// Error represents an error in a JSON-RPC response. +// It includes an error code, a message, and optional additional data. #[derive(Debug, Serialize, Deserialize)] pub struct Error { + /// Error code indicating the type of error. pub code: i32, + /// Human-readable error message. pub message: String, + /// Optional additional data about the error. #[serde(skip_serializing_if = "Option::is_none")] pub data: Option, } -- cgit v1.2.3