error[E0382]: use of moved value: `cake`
|
| let cake = Cake {};
| ---- move occurs because `cake` has type `Cake`, which does not implement the `Copy` trait
| have(cake);
| ---- value moved here
| eat(cake);
| ^^^^ value used here after move

