mirror of
https://github.com/ahgamut/rust-ape-example.git
synced 2024-05-14 17:42:41 +00:00
34 lines
753 B
Rust
34 lines
753 B
Rust
// ./src/scope/move/partial_move.md
|
|
|
|
|
|
fn part0() {
|
|
#[derive(Debug)]
|
|
struct Person {
|
|
name: String,
|
|
age: Box<u8>,
|
|
}
|
|
|
|
let person = Person {
|
|
name: String::from("Alice"),
|
|
age: Box::new(20),
|
|
};
|
|
|
|
// `name` is moved out of person, but `age` is referenced
|
|
let Person { name, ref age } = person;
|
|
|
|
println!("The person's age is {}", age);
|
|
|
|
println!("The person's name is {}", name);
|
|
|
|
// Error! borrow of partially moved value: `person` partial move occurs
|
|
//println!("The person struct is {:?}", person);
|
|
|
|
// `person` cannot be used but `person.age` can be used as it is not moved
|
|
println!("The person's age from person struct is {}", person.age);
|
|
}
|
|
|
|
pub fn main() {
|
|
part0();
|
|
}
|
|
|