Struct jsonrpsee_ws_server::RpcModule [−][src]
pub struct RpcModule<Context> { /* fields omitted */ }
Expand description
Sets of JSON-RPC methods can be organized into a “module“s that are in turn registered on the server or,
alternatively, merged with other modules to construct a cohesive API. RpcModule
wraps an additional context
argument that can be used to access data during call execution.
Implementations
Register a new synchronous RPC method, which computes the response with the given callback.
pub fn register_async_method<R, Fun, Fut>(
&mut self,
method_name: &'static str,
callback: Fun
) -> Result<MethodResourcesBuilder<'_>, Error> where
R: 'static + Serialize + Send + Sync,
Fut: Future<Output = Result<R, Error>> + Send,
Fun: 'static + Fn(Params<'static>, Arc<Context>) -> Fut + Copy + Send + Sync,
pub fn register_async_method<R, Fun, Fut>(
&mut self,
method_name: &'static str,
callback: Fun
) -> Result<MethodResourcesBuilder<'_>, Error> where
R: 'static + Serialize + Send + Sync,
Fut: Future<Output = Result<R, Error>> + Send,
Fun: 'static + Fn(Params<'static>, Arc<Context>) -> Fut + Copy + Send + Sync,
Register a new asynchronous RPC method, which computes the response with the given callback.
Register a new RPC subscription that invokes callback on every subscription request.
The callback itself takes three parameters:
- Params
: JSONRPC parameters in the subscription request.
- SubscriptionSink
: A sink to send messages to the subscriber.
- Context: Any type that can be embedded into the RpcModule
.
Examples
use jsonrpsee_utils::server::rpc_module::RpcModule;
let mut ctx = RpcModule::new(99_usize);
ctx.register_subscription("sub", "unsub", |params, mut sink, ctx| {
let x: usize = params.one()?;
std::thread::spawn(move || {
let sum = x + (*ctx);
sink.send(&sum)
});
Ok(())
});
Methods from Deref<Target = Methods>
Merge two Methods
’s by adding all MethodCallback
s from other
into self
.
Fails if any of the methods in other
is present already.
Returns the method callback.
Attempt to execute a callback, sending the resulting JSON (success or error) to the specified sink.
Attempt to execute a callback while checking that the call does not exhaust the available resources, sending the resulting JSON (success or error) to the specified sink.
Helper to call a method on the RPC module
without having to spin up a server.
The params must be serializable as JSON array, see ToRpcParams
for further documentation.
Helper alternative to execute
, useful for writing unit tests without having to spin
a server up.
pub async fn test_subscription(
&'_ self,
method: &'_ str,
params: impl ToRpcParams
) -> TestSubscription
pub async fn test_subscription(
&'_ self,
method: &'_ str,
params: impl ToRpcParams
) -> TestSubscription
Test helper that sets up a subscription using the given method
. Returns a tuple of the
SubscriptionId
and a channel on which subscription JSON payloads can be received.
Returns an Iterator
with all the method names registered on this server.
Trait Implementations
Auto Trait Implementations
impl<Context> !RefUnwindSafe for RpcModule<Context>
impl<Context> !UnwindSafe for RpcModule<Context>
Blanket Implementations
Mutably borrows from an owned value. Read more