Struct jsonrpc_core::io::IoHandler [] [src]

pub struct IoHandler {
    // some fields omitted
}

Should be used to handle jsonrpc io.

extern crate jsonrpc_core;
use jsonrpc_core::*;

fn main() {
    let io = IoHandler::new();
    struct SayHello;
    impl MethodCommand for SayHello {
        fn execute(&self, _params: Params) -> Result<Value, Error> {
            Ok(Value::String("hello".to_string()))
        }
    }

    io.add_method("say_hello", SayHello);

    let request = r#"{"jsonrpc": "2.0", "method": "say_hello", "params": [42, 23], "id": 1}"#;
    let response = r#"{"jsonrpc":"2.0","result":"hello","id":1}"#;

    assert_eq!(io.handle_request(request), Some(response.to_string()));
}

Methods

impl IoHandler
[src]

fn new() -> Self

fn add_method<C>(&self, name: &str, command: C) where C: MethodCommand + 'static

fn add_notification<C>(&self, name: &str, command: C) where C: NotificationCommand + 'static

fn add_delegate<D>(&self, delegate: IoDelegate<D>) where D: Send + Sync

fn handle_request<'a>(&self, request_str: &'a str) -> Option<String>