Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.56 KB | None | 0 0
  1. #![allow(unused)]
  2.  
  3. use std::sync::Arc;
  4.  
  5. struct S<'a> {
  6. data: &'a u32,
  7. }
  8.  
  9. impl<'a> S<'a> {
  10. fn get(&self) -> u32 {
  11. *self.data
  12. }
  13.  
  14. // This works
  15. fn make_and_run(&self) -> u32{
  16. let cl = || {self.get()};
  17.  
  18. cl()
  19. }
  20.  
  21. // This does not ...
  22. fn make(&self) -> Arc<Box<dyn Fn() -> u32 + 'a>> {
  23. let cl = || {self.get()};
  24. Arc::new(Box::new(cl))
  25. }
  26. }
  27.  
  28. fn main() {
  29. let mut i = 1;
  30. let mut s = S {data: & i};
  31.  
  32. println!("data = {}", s.get());
  33. println!("data = {}", s.make_and_run())
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement