inquire::Text::new("あなたのお名前は?").prompt().unwrap(); let user = User::new(name); let stocks = Item::default_stocks(); println!("{}", user); let _cart = inquire::MultiSelect::new("買いたい商品を選んでください", stocks).prompt(); println!("{}", user); } main関数
--> src/chapter_2.rs:108:20 | 99 | let user = User::new(name); | ---- move occurs because `user` has type `User`, which does not implement the `Copy` trait ... 106 | buy(user, cart, stocks); | ---- value moved here 107 | 108 | println!("{}", user); | ^^^^ value borrowed here after move
--> src/chapter_2.rs:108:20 | 99 | let user = User::new(name); | ---- move occurs because `user` has type `User`, which does not implement the `Copy` trait ... 106 | buy(user, cart, stocks); | ---- value moved here 107 | 108 | println!("{}", user); | ^^^^ value borrowed here after move
is behind a `&` reference --> src/chapter_2.rs:105:5 | 95 | fn buy(user: &User, cart: Vec<Item>, stocks: &Vec<Item>) -> Result<(), Error> { | ----- help: consider changing this to be a mutable reference: `&mut User` ... 105 | user.wallet -= total_price; | ^^^^^^^^^^^^^^^^^^^^^^^^^^ `user` is a `&` reference, so the data it refers to cannot be written