• For value T, there can only be one &mut T xor any number &T.
  • References must always be valid.

  • At any given time, you can have either one mutable reference or any number of immutable references.
  • References must always be valid.

Notice that this is very similar to the defintion of a data race (not to be confused with race condition):

There is a “data race” when two or more pointers access the same memory location at the same time, where at least one of them is writing, and the operations are not synchronized.[^2]