use super::{ResponseParams, ValidationError, JSON_RPC_VERSION_STR};
use crate::jwt::decode::MessageId;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct RPCResponse {
pub id: MessageId,
pub jsonrpc: String,
#[serde(flatten)]
pub params: ResponseParams,
}
impl RPCResponse {
pub fn validate(&self) -> Result<(), ValidationError> {
if !self.id.validate() {
return Err(ValidationError::RequestId);
}
if &self.jsonrpc != JSON_RPC_VERSION_STR {
return Err(ValidationError::JsonRpcVersion);
}
Ok(())
}
}