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§
Sourcefn build_params(
params: Self::Params,
calling_convention: ConcreteCallingConvention,
) -> Result<RequestParameters, Error>
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
fn parse_params( params_raw: Option<impl AsRef<str>>, calling_convention: ParamStructure, ) -> Result<Self::Params>
Sourcefn openrpc<'de>(
g: &mut SchemaGenerator,
calling_convention: ParamStructure,
method_name: &'static str,
) -> Method
fn openrpc<'de>( g: &mut SchemaGenerator, calling_convention: ParamStructure, method_name: &'static str, ) -> Method
Generate a full OpenRPC method definition for this endpoint.
Sourcefn register(
modules: &mut HashMap<ApiPaths, RpcModule<RPCState<impl Blockstore + Send + Sync + 'static>>>,
calling_convention: ParamStructure,
) -> Result<(), RegisterMethodError>
fn register( modules: &mut HashMap<ApiPaths, RpcModule<RPCState<impl Blockstore + Send + Sync + 'static>>>, calling_convention: ParamStructure, ) -> Result<(), RegisterMethodError>
Register a method with an RpcModule.
Sourcefn request(params: Self::Params) -> Result<Request<Self::Ok>, Error>
fn request(params: Self::Params) -> Result<Request<Self::Ok>, Error>
Returns Err if any of the parameters fail to serialize.
fn request_params(params: Self::Params) -> Result<Value, Error>
Sourcefn request_with_alias(
params: Self::Params,
use_alias: bool,
) -> Result<Request<Self::Ok>>
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.
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>>
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.