pub trait ToRpcParams {
    fn to_rpc_params(self) -> Result<Option<Box<RawValue>>, Error>;
}
Expand description

Marker trait for types that can be serialized as JSON compatible strings.

This trait ensures the correctness of the RPC parameters.

Note

Please consider using the crate::params::ArrayParams and crate::params::ObjectParams than implementing this trait.

Examples

Implementation for hard-coded strings

use jsonrpsee_core::traits::ToRpcParams;
use serde_json::value::RawValue;
use jsonrpsee_core::Error;

struct ManualParam;

impl ToRpcParams for ManualParam {
    fn to_rpc_params(self) -> Result<Option<Box<RawValue>>, Error> {
        // Manually define a valid JSONRPC parameter.
        RawValue::from_string("[1, \"2\", 3]".to_string()).map(Some).map_err(Error::ParseError)
    }
}

Implementation for JSON serializable structures

use jsonrpsee_core::traits::ToRpcParams;
use serde_json::value::RawValue;
use serde::Serialize;
use jsonrpsee_core::Error;

#[derive(Serialize)]
struct SerParam {
    param_1: u8,
    param_2: String,
};

impl ToRpcParams for SerParam {
    fn to_rpc_params(self) -> Result<Option<Box<RawValue>>, Error> {
        let s = String::from_utf8(serde_json::to_vec(&self)?).expect("Valid UTF8 format");
        RawValue::from_string(s).map(Some).map_err(Error::ParseError)
    }
}

Required Methods§

Consume and serialize the type as a JSON raw value.

Implementations on Foreign Types§

Implementors§