| error[E0505]: cannot move out of `fancy_num` because it is borrowed |
| --> $DIR/E0504.rs:9:13 |
| | |
| LL | let fancy_num = FancyNum { num: 5 }; |
| | --------- binding `fancy_num` declared here |
| LL | let fancy_ref = &fancy_num; |
| | ---------- borrow of `fancy_num` occurs here |
| LL | |
| LL | let x = move || { |
| | ^^^^^^^ move out of `fancy_num` occurs here |
| LL | println!("child function: {}", fancy_num.num); |
| | ------------- move occurs due to use in closure |
| ... |
| LL | println!("main function: {}", fancy_ref.num); |
| | ------------- borrow later used here |
| | |
| note: if `FancyNum` implemented `Clone`, you could clone the value |
| --> $DIR/E0504.rs:1:1 |
| | |
| LL | struct FancyNum { |
| | ^^^^^^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let fancy_ref = &fancy_num; |
| | --------- you could clone this value |
| |
| error: aborting due to 1 previous error |
| |
| For more information about this error, try `rustc --explain E0505`. |