bitwarden_ipc/rpc/
error.rs

1use serde::{Deserialize, Serialize};
2use thiserror::Error;
3
4use crate::serde_utils;
5
6#[derive(Debug, Error, Clone, Serialize, Deserialize, PartialEq, Eq)]
7pub enum RpcError {
8    #[error("Failed to read request: {0}")]
9    RequestDeserializationError(String),
10
11    #[error("Failed to serialize request: {0}")]
12    RequestSerializationError(String),
13
14    #[error("Failed to read response: {0}")]
15    ResponseDeserializationError(String),
16
17    #[error("Failed to serialize response: {0}")]
18    ResponseSerializationError(String),
19
20    #[error("Request could not be completed because no handler has been registered for")]
21    NoHandlerFound,
22}
23
24impl RpcError {
25    pub(crate) fn to_vec(&self) -> Vec<u8> {
26        serde_utils::to_vec(&self).expect("Serializing RpcError should not fail")
27    }
28}