Summary
In this chapter we learned the intelligence behind the Rust compiler, embodied in the principles of ownership, moving values and borrowing--it is called the borrow-checker for a reason. We saw the different pointers Rust advocates--references, boxes, and reference counters. Now that we have a grasp on how this all works together, we will understand much better the errors, warnings, and messages the compiler may throw at us.
In the following chapter we will expose the bigger units of code organization in code like modules and crates, and how we can write macros to make coding less repetitive.