Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

The Rust Reference

  • repo
  • site
  • description: This book is the primary reference for the Rust programming language.

book.toml

[book]

title = "The Rust Reference"
authors = ["The Rust Project Developers"]

[output.html]
additional-css = ["theme/reference.css"]
additional-js = ["theme/reference.js"]
git-repository-url = "https://github.com/rust-lang/reference/"
edit-url-template = "https://github.com/rust-lang/reference/edit/master/{path}"
smart-punctuation = true

[output.html.fold]
enable = true
level = 0

[output.html.search]
use-boolean-and = true

[output.html.search.chapter]
"grammar.md" = { enable = false }
"syntax-index.md" = { enable = false }
"test-summary.md" = { enable = false }

[output.html.redirect]
"/attributes.html#cold-attribute" = "attributes/codegen.html#the-cold-attribute"
"/attributes.html#conditional-compilation" = "conditional-compilation.html"
"/attributes.html#crate-only-attributes" = "attributes.html#built-in-attributes-index"
"/attributes.html#deprecation" = "attributes/diagnostics.html#the-deprecated-attribute"
"/attributes.html#derive" = "attributes/derive.html"
"/attributes.html#documentation" = "../rustdoc/the-doc-attribute.html"
"/attributes.html#ffi-attributes" = "attributes.html#built-in-attributes-index"
"/attributes.html#inline-attribute" = "attributes/codegen.html#the-inline-attribute"
"/attributes.html#lint-check-attributes" = "attributes/diagnostics.html#lint-check-attributes"
"/attributes.html#macro-related-attributes" = "attributes.html#built-in-attributes-index"
"/attributes.html#miscellaneous-attributes" = "attributes.html#built-in-attributes-index"
"/attributes.html#must_use" = "attributes/diagnostics.html#the-must_use-attribute"
"/attributes.html#optimization-hints" = "attributes/codegen.html#optimization-hints"
"/attributes.html#path" = "items/modules.html#the-path-attribute"
"/attributes.html#preludes" = "crates-and-source-files.html#preludes-and-no_std"
"/attributes.html#testing" = "attributes/testing.html"
"/attributes.html#tool-lint-attributes" = "attributes/diagnostics.html#tool-lint-attributes"
"/crates-and-source-files.html#preludes-and-no_std" = "names/preludes.html"
"/expressions/block-expr.html#labelled-block-expressions" = "block-expr.html#labeled-block-expressions"
"/expressions/enum-variant-expr.html" = "struct-expr.html"
"/expressions/if-expr.html#if-let-expressions" = "if-expr.html#if-let-patterns"
"/expressions/loop-expr.html#labelled-block-expressions" = "loop-expr.html#labeled-block-expressions"
"/expressions/loop-expr.html#predicate-pattern-loops" = "loop-expr.html#while-let-patterns"
"/expressions/operator-expr.html#slice-dst-pointer-to-pointer-cast" = "operator-expr.html#pointer-to-pointer-cast"
"/expressions/operator-expr.html#the-question-mark-operator" = "operator-expr.html#the-try-propagation-expression"
"/glossary.html#object-safe-traits" = "glossary.html#dyn-compatible-traits"
"/items/extern-crates.html#extern-prelude" = "../names/preludes.html#extern-prelude"
"/items/modules.html#prelude-items" = "../names/preludes.html"
"/items/traits.html#object-safety" = "traits.html#dyn-compatibility"
"/lifetime-elision.html#static-lifetime-elision" = "lifetime-elision.html#const-and-static-elision"
"/macros-by-example.html#path-based-scope" = "macros-by-example.html#the-macro_export-attribute"
"/patterns.html#rest-patterns" = "patterns.html#rest-pattern"
"/procedural-macros.html#attribute-macros" = "procedural-macros.html#the-proc_macro_attribute-attribute"
"/procedural-macros.html#derive-macros" = "procedural-macros.html#the-proc_macro_derive-attribute"
"/procedural-macros.html#function-like-procedural-macros" = "procedural-macros.html#the-proc_macro-attribute"
"/runtime.html#the-panic_handler-attribute" = "panic.html#the-panic_handler-attribute"
"/types.html#abstract-return-types" = "types/impl-trait.html#abstract-return-types"
"/types.html#anonymous-type-parameters" = "types/impl-trait.html#anonymous-type-parameters"
"/types.html#array-and-slice-types" = "types/array.html"
"/types.html#boolean-type" = "types/boolean.html"
"/types.html#call-traits-and-coercions" = "types/closure.html#call-traits-and-coercions"
"/types.html#capture-modes" = "types/closure.html#capture-modes"
"/types.html#closure-types" = "types/closure.html"
"/types.html#enumerated-types" = "types/enum.html"
"/types.html#function-item-types" = "types/function-item.html"
"/types.html#function-pointer-types" = "types/function-pointer.html"
"/types.html#impl-trait" = "types/impl-trait.html"
"/types.html#inferred-type" = "types/inferred.html"
"/types.html#machine-dependent-integer-types" = "types/numeric.html#machine-dependent-integer-types"
"/types.html#machine-types" = "types/numeric.html"
"/types.html#mutable-references-" = "types/pointer.html#mutable-references-mut"
"/types.html#never-type" = "types/never.html"
"/types.html#numeric-types" = "types/numeric.html"
"/types.html#other-traits" = "types/closure.html#other-traits"
"/types.html#pointer-types" = "types/pointer.html"
"/types.html#raw-pointers-const-and-mut" = "types/pointer.html#raw-pointers-const-and-mut"
"/types.html#self-types" = "paths.html#self-1"
"/types.html#shared-references-" = "types/pointer.html#shared-references-"
"/types.html#smart-pointers" = "types/pointer.html#smart-pointers"
"/types.html#struct-types" = "types/struct.html"
"/types.html#textual-types" = "types/textual.html"
"/types.html#trait-object-lifetime-bounds" = "types/trait-object.html#trait-object-lifetime-bounds"
"/types.html#trait-objects" = "types/trait-object.html"
"/types.html#tuple-types" = "types/tuple.html"
"/types.html#type-parameters" = "types/parameters.html"
"/types.html#union-types" = "types/union.html"
"/types.html#unique-immutable-borrows-in-captures" = "types/closure.html#unique-immutable-borrows-in-captures"
"/unsafe-blocks.html" = "unsafe-keyword.html"
"/unsafe-functions.html" = "unsafe-keyword.html"

[rust]
edition = "2024"

[preprocessor.spec]
command = "cargo run --release --manifest-path mdbook-spec/Cargo.toml"

[build]
extra-watch-dirs = ["mdbook-spec/src"]