Вот две сигнатуры функций, которые я видел в документации Rust:
fn modify_foo(mut foo: Box<i32>) { *foo += 1; *foo }
fn modify_foo(foo: &mut i32) { *foo += 1; *foo }
Почему различное размещение mut
?
Кажется, что первая функция также может быть объявлена как
fn modify_foo(foo: mut Box<i32>) { /* ... */ }