mod.rs 601 B
Newer Older
use crate::Error;
use serde::de::DeserializeOwned;
Maciej Hirsz's avatar
Maciej Hirsz committed
use serde_json::value::RawValue;
/// JSON-RPC error related types.
pub mod error;
/// JSON_RPC params related types.
pub mod params;
/// JSON-RPC request object related types
pub mod request;
/// JSON-RPC response object related types.
pub mod response;

/// Parse request ID from RawValue.
pub fn parse_request_id<T: DeserializeOwned>(raw: Option<&RawValue>) -> Result<T, crate::Error> {
	match raw {
		None => Err(Error::InvalidRequestId),
		Some(v) => {
			let val = serde_json::from_str(v.get()).map_err(Error::ParseError)?;
			Ok(val)