Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. use std::collections::HashMap;
  2.  
  3. struct MyStruct {
  4. my_vec: HashMap<i32, Box<MyCallback>>,
  5. val: String,
  6. }
  7.  
  8. struct MyCallback;
  9.  
  10. impl MyCallback {
  11. fn call(&self, my_struct: &MyStruct) {
  12. println!("{:?}", &my_struct.val);
  13. }
  14. }
  15.  
  16. impl MyStruct {
  17. fn new() -> Self {
  18. let mut my_vec = HashMap::new();
  19. let my_callback = Box::new(MyCallback {});
  20. let my_callback2 = Box::new(MyCallback {});
  21. my_vec.insert(1i32, my_callback);
  22. my_vec.insert(2i32, my_callback2);
  23. Self {
  24. my_vec,
  25. val: "hello".to_string(),
  26. }
  27. }
  28. }
  29.  
  30. fn main() {
  31. let my_struct = MyStruct::new();
  32. let vectorr = &my_struct.my_vec;
  33.  
  34. let xx = vectorr.get(&1).unwrap();
  35.  
  36. xx.call(&my_struct);
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement