use serde::Serialize;
use serde_json::Value;
use serde_with::{DisplayFromStr, serde_as};
#[serde_as]
#[derive(Debug, Serialize)]
pub enum RpcRequestParsingError {
RequestInvalidType {
actual_type: String,
},
ParamsInvalidType {
actual_type: String,
},
VersionMissing {
id: Option<Value>, method: Option<String>,
},
VersionInvalid {
id: Option<Value>, method: Option<String>,
version: Value,
},
MethodMissing {
id: Option<Value>, },
MethodInvalidType {
id: Option<Value>, method: Value,
},
NotificationHasId {
method: Option<String>,
id: Value,
},
MethodInvalid {
actual: String,
},
IdMissing {
method: Option<String>,
},
IdInvalid {
actual: String,
cause: String,
},
Parse(#[serde_as(as = "DisplayFromStr")] serde_json::Error), }
impl core::fmt::Display for RpcRequestParsingError {
fn fmt(&self, fmt: &mut core::fmt::Formatter) -> core::result::Result<(), core::fmt::Error> {
write!(fmt, "{self:?}")
}
}
impl std::error::Error for RpcRequestParsingError {}