1use std::fmt;
4use jsonrpc_core::{self as core, Error, Params, ErrorCode, Value};
5use serde;
6
7pub fn invalid_params<T>(param: &str, details: T) -> Error where T: fmt::Debug {
9 Error {
10 code: ErrorCode::InvalidParams,
11 message: format!("Couldn't parse parameters: {}", param),
12 data: Some(Value::String(format!("{:?}", details))),
13 }
14}
15
16pub fn expect_no_params(params: Params) -> core::Result<()> {
18 match params {
19 Params::None => Ok(()),
20 Params::Array(ref v) if v.is_empty() => Ok(()),
21 p => Err(invalid_params("No parameters were expected", p)),
22 }
23}
24
25pub fn to_value<T>(value: T) -> Value where T: serde::Serialize {
27 core::to_value(value).expect("Expected always-serializable type.")
28}