1. Introduction
  2. 1. Notation
  3. 2. Lexical structure
    1. 2.1. Input format
    2. 2.2. Keywords
    3. 2.3. Identifiers
    4. 2.4. Comments
    5. 2.5. Whitespace
    6. 2.6. Tokens
    7. 2.7. Paths
  4. 3. Macros
    1. 3.1. Macros By Example
    2. 3.2. Procedural Macros
  5. 4. Crates and source files
  6. 5. Conditional compilation
  7. 6. Items
    1. 6.1. Modules
    2. 6.2. Extern crates
    3. 6.3. Use declarations
    4. 6.4. Functions
    5. 6.5. Type aliases
    6. 6.6. Structs
    7. 6.7. Enumerations
    8. 6.8. Unions
    9. 6.9. Constant items
    10. 6.10. Static items
    11. 6.11. Traits
    12. 6.12. Implementations
    13. 6.13. External blocks
    14. 6.14. Type and lifetime parameters
    15. 6.15. Associated Items
    16. 6.16. Visibility and Privacy
  8. 7. Attributes
    1. 7.1. Testing
    2. 7.2. Derive
    3. 7.3. Diagnostics
    4. 7.4. Code generation
    5. 7.5. Limits
    6. 7.6. Type System
  9. 8. Statements and expressions
    1. 8.1. Statements
    2. 8.2. Expressions
      1. 8.2.1. Literal expressions
      2. 8.2.2. Path expressions
      3. 8.2.3. Block expressions
      4. 8.2.4. Operator expressions
      5. 8.2.5. Grouped expressions
      6. 8.2.6. Array and index expressions
      7. 8.2.7. Tuple and index expressions
      8. 8.2.8. Struct expressions
      9. 8.2.9. Enum variant expressions
      10. 8.2.10. Call expressions
      11. 8.2.11. Method call expressions
      12. 8.2.12. Field access expressions
      13. 8.2.13. Closure expressions
      14. 8.2.14. Loop expressions
      15. 8.2.15. Range expressions
      16. 8.2.16. If and if let expressions
      17. 8.2.17. Match expressions
      18. 8.2.18. Return expressions
      19. 8.2.19. Await expressions
  10. 9. Patterns
  11. 10. Type system
    1. 10.1. Types
      1. 10.1.1. Boolean type
      2. 10.1.2. Numeric types
      3. 10.1.3. Textual types
      4. 10.1.4. Never type
      5. 10.1.5. Tuple types
      6. 10.1.6. Array types
      7. 10.1.7. Slice types
      8. 10.1.8. Struct types
      9. 10.1.9. Enumerated types
      10. 10.1.10. Union types
      11. 10.1.11. Function item types
      12. 10.1.12. Closure types
      13. 10.1.13. Pointer types
      14. 10.1.14. Function pointer types
      15. 10.1.15. Trait object types
      16. 10.1.16. Impl trait type
      17. 10.1.17. Type parameters
      18. 10.1.18. Inferred type
    2. 10.2. Dynamically Sized Types
    3. 10.3. Type layout
    4. 10.4. Interior mutability
    5. 10.5. Subtyping and Variance
    6. 10.6. Trait and lifetime bounds
    7. 10.7. Type coercions
    8. 10.8. Destructors
    9. 10.9. Lifetime elision
  12. 11. Special types and traits
  13. 12. Memory model
    1. 12.1. Memory allocation and lifetime
    2. 12.2. Memory ownership
    3. 12.3. Variables
  14. 13. Linkage
  15. 14. Unsafety
    1. 14.1. Unsafe functions
    2. 14.2. Unsafe blocks
    3. 14.3. Behavior considered undefined
    4. 14.4. Behavior not considered unsafe
  16. 15. Constant Evaluation
  17. 16. Application Binary Interface
  18. 17. The Rust runtime
  19. 18. Appendices
    1. 18.1. Macro Follow-Set Ambiguity Formal Specification
    2. 18.2. Influences
    3. 18.3. Glossary

The Oxur Specification

Macros