rust|a systems programming language focused on memory safety and performance
ownership|the rule that each value in rust has a single variable that owns it at a time
borrowing|accessing data owned by another variable without taking ownership of it
mutable borrow|a borrow that allows modifying the referenced data but only one may exist at a time
immutable borrow|a borrow that allows read-only access and multiple may exist simultaneously
lifetime|the scope during which a reference is valid
stack|a memory area for storing values with known, fixed size at compile time
heap|a memory area used for values that grow or whose size is unknown at compile time
move|when ownership of a value shifts from one variable to another
copy|a trait indicating that values are duplicated rather than moved
clone|a method to explicitly create a duplicate of a value on the heap
string slice|a reference to part of a string, written as &str
string|an owned growable text type stored on the heap, written as String
vector|a growable list type stored on the heap, written as Vec<T>
array|a fixed-size list type stored on the stack, written as [T; N]
enum|a type that represents one of several possible named variants
struct|a type that groups related data into fields
impl|a block where methods associated with a struct or enum are defined