WebIf you want to borrow the return without forcing the mutable borrow to live that long too, you are probably going to have to split the function in two. This is because you are not able to borrow the return value from the mutable borrow to do so. Share Improve this answer Follow edited Apr 19, 2024 at 21:35 Shepmaster 372k 85 1069 1321 WebJul 9, 2024 · As you can see, you are borrowing self.test_vec mutably first, and then trying to get the length, which is another borrow. Since the first borrow is mutable and still in effect, the second borrow is illegal. When you use a temporary variable, you are effectively reordering your borrows and since self.test_vec.len() terminates the borrow before ...
Cannot borrow `x` as mutable more than once at a time?
WebFeb 16, 2024 · Unlike the question Cannot borrow `x` as mutable more than once at a time, add does not return any reference at all. Unlike the question Borrow errors for multiple borrows, the return type is i32 which has 'static lifetime. While the following code can be compiled without errors. WebJul 25, 2024 · self.get_lat () borrows a value from &self, and that will restrict what else you can do with self until that borrow is released – when your last goes out of scope at the end of the function. If the compiler allowed you to call add_child, this could invalidate the immutable reference you have. roberson christmas
rust - Cannot borrow `*self` as mutable more than once at a …
WebNov 14, 2014 · Prevent cannot borrow `*self` as immutable because it is also borrowed as mutable when accessing disjoint fields in struct? 0. Rust's borrow-checker, for loop and structs methods. 0. Cannot borrow `*self` as mutable more than once at a time when using an iterator. Hot Network Questions WebJul 25, 2024 · self.get_lat() borrows a value from &self, and that will restrict what else you can do with self until that borrow is released -- when your last goes out of scope at the … WebJan 20, 2024 · If you are not bound (for some reason) to structure the code the way it is, we can move the update logic within Node#update to work around the borrow checker and eliminate impl MoveAction. impl Node { fn update (&mut self) { for action in self.actions.iter () { self.x = action.dest_x; self.y = action.dest_y; } } } roberson christmas tree forest