When I learn Rust's mut
keyword and references types, everything seemed logical.
Basicly without mut
decleared, any member of a struct cannot change.
Until I read to this: https://doc.rust-lang.org/rust-by-example/fn/closures/capture.html
let mut count = 0;
// A closure to increment `count` could take either `&mut count` or `count`
// but `&mut count` is less restrictive so it takes that. Immediately
// borrows `count`.
//