| error[E0505]: cannot move out of `fancy_num` because it is borrowed | |
| --> $DIR/E0504.rs:10: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:2: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`. |