actor_core_client/
protocol.rs1use serde::{Deserialize, Serialize};
2use serde_json::Value;
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct Init {
8 pub ci: String,
10 pub ct: String,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct RpcResponseOk {
16 pub i: i64,
18 pub o: Value,
20}
21
22#[derive(Debug, Clone, Serialize, Deserialize)]
23pub struct RpcResponseError {
24 pub i: i64,
26 pub c: String,
28 pub m: String,
30 pub md: Option<Value>,
32}
33
34#[derive(Debug, Clone, Serialize, Deserialize)]
35pub struct ToClientEvent {
36 pub n: String,
38 pub a: Vec<Value>,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43pub struct ToClientError {
44 pub c: String,
46 pub m: String,
48 pub md: Option<Value>,
50}
51
52#[derive(Debug, Clone, Serialize, Deserialize)]
53#[serde(untagged)]
54pub enum ToClientBody {
55 Init { i: Init },
57 ResponseOk { ro: RpcResponseOk },
59 ResponseError { re: RpcResponseError },
61 EventMessage { ev: ToClientEvent },
63 EventError { er: ToClientError },
65}
66
67#[derive(Debug, Clone, Serialize, Deserialize)]
68pub struct ToClient {
69 pub b: ToClientBody,
71}
72
73#[derive(Debug, Clone, Serialize, Deserialize)]
76pub struct RpcRequest {
77 pub i: i64,
79 pub n: String,
81 pub a: Vec<Value>,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
86pub struct SubscriptionRequest {
87 pub e: String,
89 pub s: bool,
91}
92
93#[derive(Debug, Clone, Serialize, Deserialize)]
94#[serde(untagged)]
95pub enum ToServerBody {
96 RpcRequest { rr: RpcRequest },
98 SubscriptionRequest { sr: SubscriptionRequest },
100}
101
102#[derive(Debug, Clone, Serialize, Deserialize)]
103pub struct ToServer {
104 pub b: ToServerBody,
106}