Advertisement
Guest User

Untitled

a guest
Oct 12th, 2019
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. extern crate lazy_static; // 1.4.0
  2.  
  3. use std::sync::Arc;
  4. use std::sync::Mutex;
  5. use std::ops::DerefMut;
  6. use std::collections::HashMap;
  7. use lazy_static::lazy_static;
  8.  
  9. lazy_static! {
  10. static ref HASHMAP: Arc<Mutex<HashMap<u64, String>>> = {
  11. let mut m = HashMap::new();
  12. m.insert(0, "foo".to_string());
  13. m.insert(1, "bar".to_string());
  14. m.insert(2, "baz".to_string());
  15. Arc::new(Mutex::new(m))
  16. };
  17. }
  18.  
  19. fn main() {
  20. // get
  21. {
  22. let lk = HASHMAP.lock().unwrap();
  23. println!("{:?}", lk.get(&0));
  24. }
  25.  
  26. // Swap
  27. {
  28. let mut m = HashMap::new();
  29. m.insert(0, "foo_foo".to_string());
  30. m.insert(1, "bar_foo".to_string());
  31. m.insert(2, "baz_foo".to_string());
  32.  
  33. let mut lk = HASHMAP.lock().unwrap();
  34. std::mem::swap(lk.deref_mut(), &mut m);
  35. }
  36.  
  37. // get again.
  38. {
  39. let lk = HASHMAP.lock().unwrap();
  40. println!("{:?}", lk.get(&0));
  41. }
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement