Trait RpcInvocable

Source
pub trait RpcInvocable: Invocable {
    // Required method
    fn invoke(
        &self,
        obj: Arc<dyn Object>,
        method: Box<dyn DynMethod>,
        ctx: Arc<dyn Context>,
        sink: BoxedUpdateSink,
    ) -> Result<RpcResultFuture, InvokeError>;
}
Expand description

Subtrait of Invocable that requires its outputs to be serializable as RPC replies.

Required Methods§

Source

fn invoke( &self, obj: Arc<dyn Object>, method: Box<dyn DynMethod>, ctx: Arc<dyn Context>, sink: BoxedUpdateSink, ) -> Result<RpcResultFuture, InvokeError>

Invoke a method on an object.

Requires that obj has the type self.object_type(), and that method has the type self.method_type().

Implementations on Foreign Types§

Source§

impl<M, OBJ, Fut, S, E> RpcInvocable for fn(Arc<OBJ>, Box<M>, Arc<dyn Context + 'static>) -> Fut
where M: RpcMethod, M::Output: Serialize + From<S>, S: 'static, E: 'static, OBJ: Object, Fut: Future<Output = Result<S, E>> + Send + 'static, RpcError: From<E>,

Source§

fn invoke( &self, obj: Arc<dyn Object>, method: Box<dyn DynMethod>, ctx: Arc<dyn Context>, sink: BoxedUpdateSink, ) -> Result<RpcResultFuture, InvokeError>

Source§

impl<M, OBJ, Fut, S, E, U> RpcInvocable for fn(Arc<OBJ>, Box<M>, Arc<dyn Context + 'static>, UpdateSink<U>) -> Fut
where M: RpcMethod, M::Output: Serialize + From<S>, S: 'static, E: 'static, OBJ: Object, Fut: Future<Output = Result<S, E>> + Send + 'static, RpcError: From<E>, M::Update: From<U> + Serialize, U: 'static + Send,

Source§

fn invoke( &self, obj: Arc<dyn Object>, method: Box<dyn DynMethod>, ctx: Arc<dyn Context>, sink: BoxedUpdateSink, ) -> Result<RpcResultFuture, InvokeError>

Implementors§