Crate jsonrpc_core [−] [src]
Transport agnostic jsonrpc library.
Right now it supports only server side handling requests.
extern crate jsonrpc_core; use jsonrpc_core::*; struct SayHello; impl SyncMethodCommand for SayHello { fn execute(&self, _params: Params) -> Result<Value, Error> { Ok(Value::String("hello".to_string())) } } struct SayHelloAsync; impl AsyncMethodCommand for SayHelloAsync { fn execute(&self, _params: Params, ready: Ready) { ready.ready(Ok(Value::String("hello".to_string()))) } } fn main() { let io = IoHandler::new(); io.add_method("say_hello", SayHello); io.add_async_method("say_hello_async", SayHelloAsync); let request = r#"{"jsonrpc": "2.0", "method": "say_hello", "params": [42, 23], "id": 1}"#; let request2 = r#"{"jsonrpc": "2.0", "method": "say_hello_async", "params": [42, 23], "id": 1}"#; let response = r#"{"jsonrpc":"2.0","result":"hello","id":1}"#; assert_eq!(io.handle_request_sync(request), Some(response.to_string())); assert_eq!(io.handle_request_sync(request2), Some(response.to_string())); }
Reexports
pub use self::async::{AsyncResult, AsyncOutput, Response, Ready}; |
pub use self::version::Version; |
pub use self::id::Id; |
pub use self::params::Params; |
pub use self::request::{Request, Call, MethodCall, Notification}; |
pub use self::response::{Output, SyncResponse, SyncOutput, Success, Failure}; |
pub use self::error::{ErrorCode, Error}; |
pub use self::commander::{Commander, MethodCommand, SyncMethodCommand, AsyncMethodCommand, AsyncMethod, NotificationCommand, MethodResult}; |
pub use self::request_handler::RequestHandler; |
pub use self::io::{IoHandler, IoDelegate, AsyncStringResponse}; |
pub use self::util::{from_params, to_value}; |
Modules
async |
Asynchronous results, outputs and responses. |
commander |
method and notification commands executor |
error |
jsonrpc errors |
id |
jsonrpc id field |
io |
jsonrpc io |
params |
jsonrpc params field |
request |
jsonrpc request |
request_handler |
jsonrpc server request handler |
response |
jsonrpc response |
util |
Serialization / Deserialization utilities. |
version |
jsonrpc version field |
Enums
Value |
Represents a JSON value |