[[Why it is good to learn rust]] [[A cool tool that visualizes the borrow checker]] [[Rust principles]] [[Cargo]] [[Items that are always imported by default in Rust are called the prelude]] [[Static class functions are called associated functions]] [[References are also immutable by default]] [[Random numbers in Rust]] [[Pattern matching with a match expression]] [[Shadowing variables]] [[Integers can overflow if compiled with --release]] [[Char is a unicode scalar value]] [[Unlike integers floats do not have an architecture dependent size]] [[Why is it called destructuring]] [[Accessing a tuple by index is different from an array]] [[An empty tuple is called a unit]] [[Primitive values such as the array are allocated on the stack]] [[Arrays are useful when you know the length will not change]] [[Array notation]] [[A scope block is an expression]] [[Adding a semicolon to the end of a line turns it into a statement]] [[How to return from a function]] [[Statement vs expression]] [[There is no truthiness]] [[If is not a statement but an expression]] [[Returning values from loops]] [[Loop over an array with for-in]] [[Undefined behaviour is caught by the compiler]] [[Variables lives in the stack]] [[Boxes live in the heap]] [[Cloning a box does a deep copy of the heap data]] [[Aliasing is accessing the same data through different variables]] [[Borrow checker]] [[A place is anything that is valid to put on the left-hand side of an assignment]]