Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #![allow(unused)]
- use std::sync::Arc;
- struct S<'a> {
- data: &'a u32,
- }
- impl<'a> S<'a> {
- fn get(&self) -> u32 {
- *self.data
- }
- // This works
- fn make_and_run(&self) -> u32{
- let cl = || {self.get()};
- cl()
- }
- // This does not ...
- fn make(&self) -> Arc<Box<dyn Fn() -> u32 + 'a>> {
- Arc::new(Box::new(|| {self.get()}))
- }
- }
- fn main() {
- let mut i = 1;
- let mut s = S {data: & i};
- println!("data = {}", s.get());
- println!("data = {}", s.make_and_run())
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement