aboutsummaryrefslogtreecommitdiff
path: root/jsonrpc/src/message.rs
diff options
context:
space:
mode:
authorhozan23 <hozan23@karyontech.net>2024-05-28 15:14:34 +0200
committerhozan23 <hozan23@karyontech.net>2024-05-28 15:14:34 +0200
commit34f528a3b4063b4a25915e60d7f22ee1fb2d1bd9 (patch)
tree0327af027e72f7baf5f484c79b189aae631773d0 /jsonrpc/src/message.rs
parent9341e695d0e387927804716b60945912cba686dd (diff)
jsonrpc: add comments & remove debugging code
Diffstat (limited to 'jsonrpc/src/message.rs')
-rw-r--r--jsonrpc/src/message.rs28
1 files changed, 28 insertions, 0 deletions
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<serde_json::Value>,
}
+/// 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<serde_json::Value>,
+ /// Result of the request if it was successful.
#[serde(skip_serializing_if = "Option::is_none")]
pub result: Option<serde_json::Value>,
+ /// Error object if the request failed.
#[serde(skip_serializing_if = "Option::is_none")]
pub error: Option<Error>,
}
+/// 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<serde_json::Value>,
}
+/// 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<serde_json::Value>,
+ /// 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<serde_json::Value>,
}