Skip to main content

CompileJsonRpcProgram

Trait CompileJsonRpcProgram 

Source
pub trait CompileJsonRpcProgram<Compiler> {
    type Methods;

    // Required method
    fn compile_jsonrpc_program(self, compiler: &Compiler) -> Self::Methods;
}
Expand description

Compiles a first-order JSON-RPC program with a concrete interpreter.

Required Associated Types§

Source

type Methods

The method collection produced by Compiler.

Required Methods§

Source

fn compile_jsonrpc_program(self, compiler: &Compiler) -> Self::Methods

Folds the complete first-order program through compiler.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<Compiler, Handler, Handle> CompileJsonRpcProgram<Compiler> for Method<Handler, FallibleNamed>
where Compiler: JsonRpcApiAlg + HandlerContextAlg<Handler::Context, Handle = Handle> + JsonRpcFallibleAlg<Handle, Handler::Args, Handler::Output>, Handler: OperationAlg + ApplyAlg<Handle, Handler::Args> + Send + Sync + 'static,

Source§

type Methods = <Compiler as JsonRpcAlg>::Methods

Source§

impl<Compiler, Handler, Handle> CompileJsonRpcProgram<Compiler> for Method<Handler, FalliblePositional>
where Compiler: JsonRpcApiAlg + HandlerContextAlg<Handler::Context, Handle = Handle> + JsonRpcFallibleAlg<Handle, Handler::Args, Handler::Output>, Handler: OperationAlg + ApplyAlg<Handle, Handler::Args> + Send + Sync + 'static,

Source§

type Methods = <Compiler as JsonRpcAlg>::Methods

Source§

impl<Compiler, Handler, Handle> CompileJsonRpcProgram<Compiler> for Method<Handler, NamedParams>
where Compiler: JsonRpcApiAlg + HandlerContextAlg<Handler::Context, Handle = Handle> + JsonRpcMethodAlg<Handle, Handler::Args, Handler::Output>, Handler: OperationAlg + ApplyAlg<Handle, Handler::Args> + Send + Sync + 'static,

Source§

type Methods = <Compiler as JsonRpcAlg>::Methods

Source§

impl<Compiler, Handler, Handle> CompileJsonRpcProgram<Compiler> for Method<Handler, Positional>
where Compiler: JsonRpcApiAlg + HandlerContextAlg<Handler::Context, Handle = Handle> + JsonRpcMethodAlg<Handle, Handler::Args, Handler::Output>, Handler: OperationAlg + ApplyAlg<Handle, Handler::Args> + Send + Sync + 'static,

Source§

type Methods = <Compiler as JsonRpcAlg>::Methods

Source§

impl<Compiler, Left, Right, Methods> CompileJsonRpcProgram<Compiler> for Merge<Left, Right>
where Compiler: JsonRpcAlg<Methods = Methods>, Left: CompileJsonRpcProgram<Compiler, Methods = Methods>, Right: CompileJsonRpcProgram<Compiler, Methods = Methods>,

Source§

type Methods = Methods

Source§

impl<Compiler, Program> CompileJsonRpcProgram<Compiler> for Named<Program>
where Program: JsonRpcProgramAlg<Compiler>,

Source§

type Methods = <Program as JsonRpcProgramAlg<Compiler>>::Methods

Source§

impl<Compiler> CompileJsonRpcProgram<Compiler> for Empty
where Compiler: JsonRpcAlg,

Source§

type Methods = <Compiler as JsonRpcAlg>::Methods