RpcMethodExt

Trait RpcMethodExt 

Source
pub trait RpcMethodExt<const ARITY: usize>: RpcMethod<ARITY> {
    // Provided methods
    fn build_params(
        params: Self::Params,
        calling_convention: ConcreteCallingConvention,
    ) -> Result<RequestParameters, Error> { ... }
    fn parse_params(
        params_raw: Option<impl AsRef<str>>,
        calling_convention: ParamStructure,
    ) -> Result<Self::Params> { ... }
    fn openrpc<'de>(
        g: &mut SchemaGenerator,
        calling_convention: ParamStructure,
        method_name: &'static str,
    ) -> Method
       where <Self::Ok as HasLotusJson>::LotusJson: JsonSchema + Deserialize<'de> { ... }
    fn register(
        modules: &mut HashMap<ApiPaths, RpcModule<RPCState<impl Blockstore + Send + Sync + 'static>>>,
        calling_convention: ParamStructure,
    ) -> Result<(), RegisterMethodError>
       where <Self::Ok as HasLotusJson>::LotusJson: Clone + 'static { ... }
    fn request(params: Self::Params) -> Result<Request<Self::Ok>, Error> { ... }
    fn request_params(params: Self::Params) -> Result<Value, Error> { ... }
    fn request_with_alias(
        params: Self::Params,
        use_alias: bool,
    ) -> Result<Request<Self::Ok>> { ... }
    fn call_raw(
        client: &Client,
        params: Self::Params,
    ) -> impl Future<Output = Result<<Self::Ok as HasLotusJson>::LotusJson, ClientError>> { ... }
    fn call(
        client: &Client,
        params: Self::Params,
    ) -> impl Future<Output = Result<Self::Ok, ClientError>> { ... }
}
Expand description

Utility methods, defined as an extension trait to avoid having to specify ARITY in user code.

Provided Methods§

Source

fn build_params( params: Self::Params, calling_convention: ConcreteCallingConvention, ) -> Result<RequestParameters, Error>

Convert from typed handler parameters to un-typed JSON-RPC parameters.

Exposes errors from Params::unparse

Source

fn parse_params( params_raw: Option<impl AsRef<str>>, calling_convention: ParamStructure, ) -> Result<Self::Params>

Source

fn openrpc<'de>( g: &mut SchemaGenerator, calling_convention: ParamStructure, method_name: &'static str, ) -> Method
where <Self::Ok as HasLotusJson>::LotusJson: JsonSchema + Deserialize<'de>,

Generate a full OpenRPC method definition for this endpoint.

Source

fn register( modules: &mut HashMap<ApiPaths, RpcModule<RPCState<impl Blockstore + Send + Sync + 'static>>>, calling_convention: ParamStructure, ) -> Result<(), RegisterMethodError>
where <Self::Ok as HasLotusJson>::LotusJson: Clone + 'static,

Register a method with an RpcModule.

Source

fn request(params: Self::Params) -> Result<Request<Self::Ok>, Error>

Returns Err if any of the parameters fail to serialize.

Source

fn request_params(params: Self::Params) -> Result<Value, Error>

Source

fn request_with_alias( params: Self::Params, use_alias: bool, ) -> Result<Request<Self::Ok>>

Creates a request, using the alias method name if use_alias is true.

Source

fn call_raw( client: &Client, params: Self::Params, ) -> impl Future<Output = Result<<Self::Ok as HasLotusJson>::LotusJson, ClientError>>

Source

fn call( client: &Client, params: Self::Params, ) -> impl Future<Output = Result<Self::Ok, ClientError>>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<const ARITY: usize, T> RpcMethodExt<ARITY> for T
where T: RpcMethod<ARITY>,