Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate lazy_static; // 1.4.0
- use std::sync::Arc;
- use std::sync::Mutex;
- use std::ops::DerefMut;
- use std::collections::HashMap;
- use lazy_static::lazy_static;
- lazy_static! {
- static ref HASHMAP: Arc<Mutex<HashMap<u64, String>>> = {
- let mut m = HashMap::new();
- m.insert(0, "foo".to_string());
- m.insert(1, "bar".to_string());
- m.insert(2, "baz".to_string());
- Arc::new(Mutex::new(m))
- };
- }
- fn main() {
- // get
- {
- let lk = HASHMAP.lock().unwrap();
- println!("{:?}", lk.get(&0));
- }
- // Swap
- {
- let mut m = HashMap::new();
- m.insert(0, "foo_foo".to_string());
- m.insert(1, "bar_foo".to_string());
- m.insert(2, "baz_foo".to_string());
- let mut lk = HASHMAP.lock().unwrap();
- std::mem::swap(lk.deref_mut(), &mut m);
- }
- // get again.
- {
- let lk = HASHMAP.lock().unwrap();
- println!("{:?}", lk.get(&0));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement