1. Introduction
  2. Hello World
    1. Comments
    2. Formatted print
      1. Debug
      2. Display
        1. Testcase: List
      3. Formatting
  3. Primitives
    1. Literals and operators
    2. Tuples
    3. Arrays and Slices
  4. Custom Types
    1. Structures
    2. Enums
      1. use
      2. Testcase: linked-list
    3. constants
  5. Variable Bindings
    1. Mutability
    2. Scope and Shadowing
    3. Freezing
  6. Types
    1. Literals
    2. Inference
    3. Aliasing
  7. Conversion
    1. From and Into
    2. TryFrom and TryInto
    3. To and from Strings
  8. Expressions
  9. Flow of Control
    1. if/else
    2. loop
      1. Returning from loops
    3. while
    4. for and range
    5. match
      1. Destructuring
        1. enums
        2. structs
    6. if let
    7. while let
  10. Functions
    1. Methods
    2. Closures
      1. Capturing
      2. As input parameters
      3. Type anonymity
      4. Input functions
      5. Examples in core
        1. Iterator::sum
        2. Searching through iterators
    3. Higher Order Functions
  11. Modules
    1. Visibility
    2. Struct visibility
    3. The use declaration
    4. super and self
    5. File hierarchy
  12. Crates
  13. Scarb
    1. Dependencies
    2. Tests
  14. Attributes
    1. unused_imports
    2. cfg
  15. Generics
    1. Functions
    2. Traits
    3. Implementation
    4. Bounds
      1. Testcase: empty bounds
    5. Multiple bounds
    6. Associated items
      1. The Problem
      2. Associated types
  16. Scoping rules
    1. RAII
    2. Ownership, and moves
      1. Mutability
    3. Retaining Ownership
      1. Snapshots
      2. References
  17. Traits
    1. Derive
    2. Operator Overloading
    3. Drop and Destruct
    4. Iterators
    5. Clone
    6. Disambiguating overlapping traits
  18. Error handling
    1. panic
    2. Option & unwrap
      1. Unpacking options with ?
      2. Combinators: map
      3. Combinators: and_then
      4. Defaults: or, or_else
    3. Result
      1. map for Result
      2. aliases for Result
      3. Early returns
      4. Introducing ?
    4. Multiple error types
      1. Pulling Results out of Options
      2. Defining an error type
  19. Core library types
    1. Dictionaries
    2. Box and Memory Segments
    3. ByteArrays
    4. Option
    5. Result
      1. ?
    6. panic!
  20. Testing
    1. Unit testing
    2. Integration testing
    3. Dev-dependencies
  21. Meta
    1. Documentation
    2. Playground