1 use jsonrpc_core::*;
2 use serde_derive::Deserialize;
3 
4 #[derive(Deserialize)]
5 struct HelloParams {
6 	name: String,
7 }
8 
main()9 fn main() {
10 	let mut io = IoHandler::new();
11 
12 	io.add_method("say_hello", |params: Params| async move {
13 		let parsed: HelloParams = params.parse().unwrap();
14 		Ok(Value::String(format!("hello, {}", parsed.name)))
15 	});
16 
17 	let request = r#"{"jsonrpc": "2.0", "method": "say_hello", "params": { "name": "world" }, "id": 1}"#;
18 	let response = r#"{"jsonrpc":"2.0","result":"hello, world","id":1}"#;
19 
20 	assert_eq!(io.handle_request_sync(request), Some(response.to_owned()));
21 }
22