1use bson::Bson;
2use serde::{Deserialize, Serialize};
3
4#[derive(Serialize, Deserialize, Debug, Clone)]
6pub struct RpcMessage {
7 pub id: i64,
8 pub data: RpcData,
9}
10
11#[derive(Serialize, Deserialize, Debug, Clone)]
13pub enum RpcData {
14 Message { endpoint: String, body: Bson },
16 Call { endpoint: String, params: Bson },
18 Subscription { endpoint: String },
20 ConnectionRequest {
25 client_name: String,
26 target_name: String,
27 },
28 Response(crate::Result<Bson>),
30 FdResponse(crate::Result<Bson>),
32}