[][src]Crate s_jsonrpc_core

Transport agnostic jsonrpc library.

Right now it supports only server side handling requests.

extern crate s_jsonrpc_core;

use s_jsonrpc_core::*;
use s_jsonrpc_core::futures::Future;

fn main() {
	let mut io = IoHandler::new();
	io.add_msod("say_hello", |_| {
		Ok(Value::String("Hello World!".into()))
	});

	let request = r#"{"jsonrpc": "2.0", "msod": "say_hello", "params": [42, 23], "id": 1}"#;
	let response = r#"{"jsonrpc":"2.0","result":"Hello World!","id":1}"#;

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

Re-exports

pub extern crate futures;
pub use types::*;

Modules

types

JSON-RPC types

Structs

IoHandler

Simplified IoHandler with no Metadata associated with each request.

MetaIoHandler

Request handler

NoopMiddleware

No-op middleware implementation

Enums

Compatibility

IoHandler json-rpc protocol compatibility

RemoteProcedure

Possible Remote Procedures with Metadata

Traits

Metadata

Metadata trait

Middleware

RPC middleware

RpcMsod

Asynchronous Msod with Metadata

RpcMsodSimple

Asynchronous Msod

RpcNotification

Notification with Metadata

RpcNotificationSimple

Notification

Type Definitions

BoxFuture

A Future trait object.

FutureResponse

A type representing middleware or RPC response before serialization.

FutureResult

A type representing future string response.

Result

A Result type.