Crate tetsy_jsonrpc_core[−][src]
Transport agnostic jsonrpc library.
Right now it supports only server side handling requests.
use tetsy_jsonrpc_core::*; use tetsy_jsonrpc_core::futures::Future; fn main() { let mut io = IoHandler::new(); io.add_method("say_hello", |_| { Ok(Value::String("Hello World!".into())) }); let request = r#"{"jsonrpc": "2.0", "method": "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 use futures; |
pub use crate::delegates::IoDelegate; |
pub use crate::middleware::Middleware; |
pub use crate::middleware::Noop as NoopMiddleware; |
pub use crate::types::*; |
Modules
delegates | Delegate rpc calls |
middleware |
|
types | JSON-RPC types |
Structs
IoHandler | Simplified |
MetaIoHandler | Request handler |
Enums
Compatibility |
|
RemoteProcedure | Possible Remote Procedures with Metadata |
Traits
IoHandlerExtension | A type that can augment |
Metadata | Metadata trait |
RpcMethod | Asynchronous Method with Metadata |
RpcMethodSimple | Asynchronous Method |
RpcNotification | Notification with Metadata |
RpcNotificationSimple | Notification |
Functions
serde_from_str | workaround for https://github.com/serde-rs/json/issues/505 Arbitrary precision confuses serde when deserializing into untagged enums, this is a workaround |
Type Definitions
BoxFuture | A |
FutureOutput | A type representing middleware or RPC call output. |
FutureResponse | A type representing middleware or RPC response before serialization. |
FutureResult | A type representing future string response. |
FutureRpcResult | A type representing an optional |
Result | A Result type. |