Trait ToRpcParams

pub trait ToRpcParams {
    // Required method
    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;

struct ManualParam;

impl ToRpcParams for ManualParam {
    fn to_rpc_params(self) -> Result<Option<Box<RawValue>>, serde_json::Error> {
        // Manually define a valid JSONRPC parameter.
        serde_json::value::to_raw_value(&[1,2,3]).map(Some)
    }
}

§Implementation for JSON serializable structures

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

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

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

Required Methods§

fn to_rpc_params(self) -> Result<Option<Box<RawValue>>, Error>

Consume and serialize the type as a JSON raw value.

Implementations on Foreign Types§

§

impl ToRpcParams for Map<String, Value>

§

impl<P> ToRpcParams for &[P]
where P: Serialize,

§

impl<P> ToRpcParams for Vec<P>
where P: Serialize,

§

impl<P, const N: usize> ToRpcParams for [P; N]

§

impl<T0> ToRpcParams for (T0,)
where T0: Serialize,

§

impl<T0, T1> ToRpcParams for (T0, T1)
where T0: Serialize, T1: Serialize,

§

impl<T0, T1, T2> ToRpcParams for (T0, T1, T2)
where T0: Serialize, T1: Serialize, T2: Serialize,

§

impl<T0, T1, T2, T3> ToRpcParams for (T0, T1, T2, T3)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize,

§

impl<T0, T1, T2, T3, T4> ToRpcParams for (T0, T1, T2, T3, T4)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize,

§

impl<T0, T1, T2, T3, T4, T5> ToRpcParams for (T0, T1, T2, T3, T4, T5)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize, T14: Serialize,

§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> ToRpcParams for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize, T14: Serialize, T15: Serialize,

Implementors§

§

impl ToRpcParams for ArrayParams

§

impl ToRpcParams for ObjectParams