A enforcement of memory allocation that ensures:

  • All variables initialized before used
  • Cant move the same value twice
  • Cant move a value while its borrowed
  • Cant access a place while its mutably borrowed
  • Cant mutate a place where its immutably borrowed Prevents UAF

Ownership

  • Every resource, i.e a Sockets has one and only one owner (variable assignment), when owner goes out of scope, the value is dropped

Moving

  • If you pass a variable to a function, the funciton now owns the variable and the original variable is invalidated

Concepts