You know Box? It’s not just for putting data on the heap. Without it, you can’t build a linked list in Rust. Or a tree. Or any recursive data structure. The compiler will just say “nope” and walk away. Under the hood, Box is a zero-cost pointer with superpowers: automatic memory cleanup, trait objects for polymorphism, and the ability to move a million bytes by copying exactly 8 of them. Here’s how it works, when to use it, and the one trick Rust uses to make Option<Box<T>> the same size as Box<T>.