1. Introduction
  2. Notation
  3. Lexical structure
    1. Input format
    2. Keywords
    3. Identifiers
    4. Comments
    5. Whitespace
    6. Tokens
  4. Macros
    1. Macros by example
    2. Procedural macros
  5. Crates and source files
  6. Conditional compilation
  7. Items
    1. Modules
    2. Extern crates
    3. Use declarations
    4. Functions
    5. Type aliases
    6. Structs
    7. Enumerations
    8. Unions
    9. Constant items
    10. Static items
    11. Traits
    12. Implementations
    13. External blocks
    14. Generic parameters
    15. Associated items
  8. Attributes
    1. Testing
    2. Derive
    3. Diagnostics
    4. Code generation
    5. Limits
    6. Type system
    7. Debugger
  9. Statements and expressions
    1. Statements
    2. Expressions
      1. Literal expressions
      2. Path expressions
      3. Block expressions
      4. Operator expressions
      5. Grouped expressions
      6. Array and index expressions
      7. Tuple and index expressions
      8. Struct expressions
      9. Call expressions
      10. Method call expressions
      11. Field access expressions
      12. Closure expressions
      13. Loop expressions
      14. Range expressions
      15. If expressions
      16. Match expressions
      17. Return expressions
      18. Await expressions
      19. Underscore expressions
  10. Patterns
  11. Type system
    1. Types
      1. Boolean type
      2. Numeric types
      3. Character type
      4. String slice type
      5. Never type
      6. Tuple types
      7. Array types
      8. Slice types
      9. Struct types
      10. Enumerated types
      11. Union types
      12. Function item types
      13. Closure types
      14. Pointer types
      15. Function pointer types
      16. Trait object types
      17. Impl trait type
      18. Type parameters
      19. Inferred type
    2. Dynamically sized types
    3. Type layout
    4. Interior mutability
    5. Subtyping and variance
    6. Trait and lifetime bounds
    7. Type coercions
    8. Divergence
    9. Destructors
    10. Lifetime elision
  12. Special types and traits
  13. Names
    1. Namespaces
    2. Scopes
    3. Preludes
    4. Paths
    5. Name resolution
    6. Visibility and privacy
  14. Memory model
    1. Memory allocation and lifetime
    2. Variables
  15. Panic
  16. Linkage
  17. Inline assembly
  18. Unsafety
    1. The unsafe keyword
    2. Behavior considered undefined
    3. Behavior not considered unsafe
  19. Constant evaluation
  20. Application binary interface
  21. The Rust runtime
  22. Appendices
    1. Grammar summary
    2. Syntax index
    3. Macro follow-set ambiguity formal specification
    4. Influences
    5. Test summary
    6. Glossary