Skip to main content

repl_proto/
lib.rs

1use serde::{Deserialize, Serialize};
2
3/// Represents a JSON-RPC request.
4#[derive(Debug, Serialize, Deserialize)]
5pub struct Request {
6    pub id: u64,
7    pub method: String,
8    pub params: serde_json::Value,
9}
10
11/// Represents a successful JSON-RPC response.
12#[derive(Debug, Serialize, Deserialize)]
13pub struct Response {
14    pub id: u64,
15    pub result: serde_json::Value,
16}
17
18/// Represents a JSON-RPC error object.
19#[derive(Debug, Serialize, Deserialize)]
20pub struct ErrorObject {
21    pub code: i64,
22    pub message: String,
23    #[serde(skip_serializing_if = "Option::is_none")]
24    pub data: Option<serde_json::Value>,
25}
26
27/// Represents an error JSON-RPC response.
28#[derive(Debug, Serialize, Deserialize)]
29pub struct ErrorResponse {
30    pub id: u64,
31    pub error: ErrorObject,
32}
33
34/// Parameters for the `evaluate` method.
35#[derive(Debug, Serialize, Deserialize)]
36pub struct EvaluateParams {
37    pub code: String,
38}
39
40/// Successful result for the `evaluate` method.
41#[derive(Debug, Serialize, Deserialize)]
42pub struct EvaluateResult {
43    pub output: String,
44}
45
46/// Represents a command entered by the user.
47#[derive(Debug, Serialize, Deserialize)]
48pub struct CommandLog {
49    pub timestamp: String,
50    pub command: String,
51}
52
53/// Represents the output generated by a command.
54#[derive(Debug, Serialize, Deserialize)]
55pub struct OutputLog {
56    pub timestamp: String,
57    pub output: String,
58}