&mut T is called mutable reference: no other threads can access the target value, meaning it is exclusive.
It lets you mutate only the memory location that the reference points to.

Between owning and having a mutable you can do the same set of actions apart from two differences:

  • owner is responsible for dropping the value
  • if you move the value behind the mutable reference, then you must leave another value in its place

See also

References

  • J. Gjengset, Rust for Rustaceans: Idiomatic Programming for Experienced Developers. No Starch Press, 2021.