rivetkit_client/protocol/
to_client.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
4pub struct Init {
5 #[serde(rename = "actorId")]
6 pub actor_id: String,
7 #[serde(rename = "connectionId")]
8 pub connection_id: String,
9 #[serde(rename = "connectionToken")]
10 #[serde(default)]
11 pub connection_token: Option<String>,
12}
13
14#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct Error {
17 pub group: String,
18 pub code: String,
19 pub message: String,
20 #[serde(skip_serializing_if = "Option::is_none")]
21 pub metadata: Option<Vec<u8>>,
22 #[serde(rename = "actionId")]
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub action_id: Option<u64>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct ActionResponse {
29 pub id: u64,
30 pub output: Vec<u8>,
31}
32
33#[derive(Debug, Clone, Serialize, Deserialize)]
34pub struct Event {
35 pub name: String,
36 pub args: Vec<u8>,
37}
38
39#[derive(Debug, Clone, Serialize, Deserialize)]
40#[serde(tag = "tag", content = "val")]
41pub enum ToClientBody {
42 Init(Init),
43 Error(Error),
44 ActionResponse(ActionResponse),
45 Event(Event),
46}
47
48#[derive(Debug, Clone, Serialize, Deserialize)]
49pub struct ToClient {
50 pub body: ToClientBody,
51}