Guest User

Untitled

a guest
Apr 25th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.65 KB | None | 0 0
  1. extern crate serde;
  2. #[macro_use]
  3. extern crate serde_derive;
  4. extern crate serde_json;
  5.  
  6. use serde::{Deserialize, Serialize};
  7.  
  8. #[derive(Serialize, Deserialize)]
  9. struct Msg {
  10. info: String,
  11. }
  12.  
  13. fn main() {
  14. let _response: Msg = send_msg(&Msg {
  15. info: "blabla".to_string(),
  16. });
  17. }
  18.  
  19. //fn send_msg<T, R>(msg: &T) -> R where T: Serialize, R: Deserialize<'static> {
  20. fn send_msg<T,R>(msg :&T) -> R where T: Serialize, for<'d: 'static> R: Deserialize<'d> {
  21. tx(&serde_json::to_string(msg).unwrap());
  22. serde_json::from_str(&rx()).unwrap()
  23. }
  24.  
  25. fn tx(msg: &str) {
  26. println!("{}", msg);
  27. }
  28.  
  29. fn rx() -> String {
  30. r#"{"info": "response"}"#.to_string()
  31. }
Add Comment
Please, Sign In to add comment