How can I change the value of a field in an instance of a nested structure?
// Do Not Change - Start
struct Base {
val: String,
}
struct Level1 {
val: Base,
}
struct Level2 {
val: Level1,
}
// Do Not Change - End
fn main() {
let x = Level2 {
val: Level1 {
val: Base {
val: "World".to_string(),
},
},
};
println!(" Hello {}", x.val.val.val);
x.val.val.val = "Moon".to_string();
println!(" Hello {}", x.val.val.val);
}
error[E0594]: cannot assign to field `x.val.val.val` of immutable binding
--> src/main.rs:28:5
|
18 | let x = Level2 {
| - help: make this binding mutable: `mut x`
...
28 | x.val.val.val = "Moon".to_string();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot mutably borrow field of immutable binding