Guest User

Untitled

a guest
May 24th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.84 KB | None | 0 0
  1. extern crate serde;
  2. #[macro_use]
  3. extern crate serde_json;
  4.  
  5. #[macro_use]
  6. extern crate serde_derive;
  7.  
  8. use serde::de::Deserialize;
  9. use serde::ser::Serialize;
  10.  
  11. use std::collections::HashMap;
  12. use std::collections::HashSet;
  13. use std::fs::File;
  14. use std::hash::{BuildHasher, Hash};
  15. use std::io::Read;
  16.  
  17. #[derive(Serialize, Deserialize)]
  18. pub struct MySet<T, S>(
  19. #[serde(
  20. bound(
  21. serialize = "HashSet<T, S>: Serialize", deserialize = "HashSet<T, S>: Deserialize<'de>"
  22. )
  23. )]
  24. HashSet<T, S>,
  25. );
  26.  
  27. impl<T, S> MySet<T, S>
  28. where
  29. T: Eq + Default + Hash + for<'de> Deserialize<'de>,
  30. S: Eq + Default + Hash + BuildHasher,
  31. {
  32. fn testme() -> Self {
  33. let mut fp = File::open("no.txt").unwrap();
  34. let mut content = String::new();
  35. fp.read_to_string(&mut content).unwrap();
  36. let d: MySet<T, S> = serde_json::from_str(&content).unwrap();
  37. d
  38. }
  39. }
  40.  
  41. #[derive(Serialize, Deserialize)]
  42. pub struct MyMap<String, S>(
  43. #[serde(
  44. bound(
  45. serialize = "HashMap<String, S>: Serialize",
  46. deserialize = "HashMap<String, S>: Deserialize<'de>"
  47. )
  48. )]
  49. HashMap<String, S>,
  50. );
  51.  
  52. impl<String, S> MyMap<String, S>
  53. where
  54. String: Eq + Hash + for<'a> Deserialize<'a>,
  55. S: Eq + Hash + for<'a> Deserialize<'a>,
  56. {
  57. fn testme() -> Self {
  58. let mut fp = File::open("no.txt").unwrap();
  59. let mut content = "".to_string();
  60. fp.read_to_string(&mut content).unwrap();
  61. let d: MyMap<String, S> = serde_json::from_str(&content).unwrap();
  62. d
  63. }
  64. }
  65.  
  66. fn main() {
  67. let mut object = json!({ "A": 65, "B": 66, "C": 67 });
  68. *object.get_mut("A").unwrap() = json!(69);
  69.  
  70. let mut array = json!(["A", "B", "C"]);
  71. *array.get_mut(2).unwrap() = json!("D");
  72.  
  73. println!("{:#?}", array);
  74. *array.get_mut(2).unwrap() = object;
  75. println!("{:#?}", array);
  76.  
  77. }
Add Comment
Please, Sign In to add comment