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 MethodCommand 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::control::*; |
pub use self::commander::{Commander, MethodCommand, SyncMethodCommand, NotificationCommand, SubscriptionCommand}; |
pub use self::request_handler::RequestHandler; |
pub use self::io::{IoHandler, IoDelegate, IoSession, IoSessionHandler}; |
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, Response, Success, Failure, SubscriptionOutput}; |
pub use self::error::{ErrorCode, Error}; |
pub use self::util::{from_params, to_value}; |
Modules
commander |
method and notification commands executor |
control |
Response processing functions. |
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 |