Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate serde;
- #[macro_use]
- extern crate serde_derive;
- extern crate serde_json;
- use serde::{Deserialize, Serialize};
- #[derive(Serialize, Deserialize)]
- struct Msg {
- info: String,
- }
- fn main() {
- let _response: Msg = send_msg(&Msg {
- info: "blabla".to_string(),
- });
- }
- //fn send_msg<T, R>(msg: &T) -> R where T: Serialize, R: Deserialize<'static> {
- fn send_msg<T,R>(msg :&T) -> R where T: Serialize, for<'d: 'static> R: Deserialize<'d> {
- tx(&serde_json::to_string(msg).unwrap());
- serde_json::from_str(&rx()).unwrap()
- }
- fn tx(msg: &str) {
- println!("{}", msg);
- }
- fn rx() -> String {
- r#"{"info": "response"}"#.to_string()
- }
Add Comment
Please, Sign In to add comment