bitwarden_ipc/rpc/
response_message.rs

1use erased_serde::Serialize as ErasedSerialize;
2use serde::{Deserialize, Serialize};
3
4use super::error::RpcError;
5use crate::message::PayloadTypeName;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct IncomingRpcResponseMessage<T> {
9    pub result: Result<T, RpcError>,
10    pub request_id: String,
11    pub request_type: String,
12}
13
14#[derive(Serialize)]
15pub struct OutgoingRpcResponseMessage<'a> {
16    pub result: Result<Box<dyn ErasedSerialize>, RpcError>,
17    pub request_id: &'a str,
18    pub request_type: &'a str,
19}
20
21impl<T> PayloadTypeName for IncomingRpcResponseMessage<T> {
22    const PAYLOAD_TYPE_NAME: &str = "RpcResponseMessage";
23}
24
25impl<'a> PayloadTypeName for OutgoingRpcResponseMessage<'a> {
26    const PAYLOAD_TYPE_NAME: &'static str = "RpcResponseMessage";
27}