Law of exclusivity means that we need exclusive access when mutating an object.

Consequences:

  • While reading an object, nobody can change it
  • While mutating an object, nobody can read or change it

With law of exclusivity hold, we don’t need explicit synchronization since we can have have shared mutable data.

Value-oriented programming is a paradigm that enforce the law of exclusivity, and Rust borrow checker also enforce that.

References