2.1 Creating a running program2.1.1 Compiling single files with rustc2.1.2 Compiling Rust projects with cargo2.2 A glance at Rust’s syntax2.2.1 Defining variables and calling functions2.3 Numbers2.3.1 Integers and decimal (floating-point) numbers2.3.2 Integers with base 2, base 8, and base 16 notation2.3.3 Comparing numbers2.3.4 Rational, complex numbers, and other numeric types2.4 Flow control2.4.1 For: The central pillar of iteration2.4.2 Continue: Skipping the rest of the current iteration2.4.3 While: Looping until a condition changes its state2.4.4 Loop: The basis for Rust’s looping constructs2.4.5 Break: Aborting a loop2.4.6 If, if else, and else: Conditional branching2.4.7 Match: Type-aware pattern matching2.5 Defining functions2.6 Using references2.7 Project: Rendering the Mandelbrot set2.8 Advanced function definitions2.8.1 Explicit lifetime annotations2.8.2 Generic functions2.9 Creating grep-lite2.10 Making lists of things with arrays, slices, and vectors2.10.1 Arrays2.10.2 Slices2.10.3 Vectors2.11 Including third-party code2.11.1 Adding support for regular expressions2.11.2 Generating the third-party crate documentation locally2.11.3 Managing Rust toolchains with rustup2.12 Supporting command-line arguments2.13 Reading from files2.14 Reading from stdinSummary