rust-search-extension/extension/index/books.js
2020-04-25 15:15:34 +08:00

1 line
No EOL
29 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var C=["The Rust Programming Language","1. Getting Started","3. Common Programming Concepts","4. Understanding Ownership","5. Using Structs to Structure Related Data","6. Enums and Pattern Matching","7. Managing Growing Projects with Packages, Crates, and Modules","8. Common Collections","9. Error Handling","10. Generic Types, Traits, and Lifetimes","11. Writing Automated Tests","12. An I/O Project: Building a Command Line Program","13. Functional Language Features: Iterators and Closures","14. More about Cargo and Crates.io","15. Smart Pointers","16. Fearless Concurrency","17. Object Oriented Programming Features of Rust","18. Patterns and Matching","19. Advanced Features","20. Final Project: Building a Multithreaded Web Server","21. Appendix","2. Under the Hood: Executing Futures and Tasks","5. Streams","6. Executing Multiple Futures at a Time","7. Workarounds to Know and Love","8. TODO: I/O","9. TODO: Asynchronous Design Patterns: Solutions and Suggestions","10. TODO: The Ecosystem: Tokio and More","Introduction","1. What are editions?","3. Rust 2018","3.2. Module system","3.3. Error handling and panics","3.4. Control flow","3.5. Trait system","3.7. Ownership and lifetimes","3.8. Data types","3.10. Macros","3.11. The compiler","3.13. Cargo and crates.io","3.14. Documentation","3.15. rustdoc","3.16. Platform and target support","1.1. Installation","2. Cargo Guide","3. Cargo Reference","3.1. Specifying Dependencies","3.2. The Manifest Format","3.8. Build Scripts","4. Cargo Commands","4.1. General Commands","4.2. Build Commands","4.3. Manifest Commands","4.4. Package Commands","4.5. Publishing Commands","introduction","3. Background And Concepts","4. Tutorial","reference/index","5. Reference","1. Introduction","1.4. Installation","2. Getting started","3. Peripherals","4. Static Guarantees","9. Interoperability","10. Unsorted topics","appendix/glossary","1. Algorithms","2. Command Line","3. Compression","4. Concurrency","5. Cryptography","6. Data Structures","7. Database","8. Date and Time","9. Development Tools","9.1. Debugging","10. Encoding","11. Error Handling","12. File System","13. Hardware Support","14. Memory Management","15. Network","16. Operating System","17. Science","17.1. Mathematics","18. Text Processing","19. Web Programming","19.4. Clients"];var N=N;var booksIndex=[{"name":C[0],"url":"https://doc.rust-lang.org/stable/book/","pages":[[C[0],"title-page",N],["Foreword","foreword",N],[C[28],"ch00-00-introduction",N],[C[1],"ch01-00-getting-started",N],[C[43],"ch01-01-installation",[C[1]]],["1.2. Hello, World!","ch01-02-hello-world",[C[1]]],["1.3. Hello, Cargo!","ch01-03-hello-cargo",[C[1]]],["2. Programming a Guessing Game","ch02-00-guessing-game-tutorial",N],[C[2],"ch03-00-common-programming-concepts",N],["3.1. Variables and Mutability","ch03-01-variables-and-mutability",[C[2]]],["3.2. Data Types","ch03-02-data-types",[C[2]]],["3.3. Functions","ch03-03-how-functions-work",[C[2]]],["3.4. Comments","ch03-04-comments",[C[2]]],["3.5. Control Flow","ch03-05-control-flow",[C[2]]],[C[3],"ch04-00-understanding-ownership",N],["4.1. What is Ownership?","ch04-01-what-is-ownership",[C[3]]],["4.2. References and Borrowing","ch04-02-references-and-borrowing",[C[3]]],["4.3. The Slice Type","ch04-03-slices",[C[3]]],[C[4],"ch05-00-structs",N],["5.1. Defining and Instantiating Structs","ch05-01-defining-structs",[C[4]]],["5.2. An Example Program Using Structs","ch05-02-example-structs",[C[4]]],["5.3. Method Syntax","ch05-03-method-syntax",[C[4]]],[C[5],"ch06-00-enums",N],["6.1. Defining an Enum","ch06-01-defining-an-enum",[C[5]]],["6.2. The match Control Flow Operator","ch06-02-match",[C[5]]],["6.3. Concise Control Flow with if let","ch06-03-if-let",[C[5]]],[C[6],"ch07-00-managing-growing-projects-with-packages-crates-and-modules",N],["7.1. Packages and Crates","ch07-01-packages-and-crates",[C[6]]],["7.2. Defining Modules to Control Scope and Privacy","ch07-02-defining-modules-to-control-scope-and-privacy",[C[6]]],["7.3. Paths for Referring to an Item in the Module Tree","ch07-03-paths-for-referring-to-an-item-in-the-module-tree",[C[6]]],["7.4. Bringing Paths Into Scope with the use Keyword","ch07-04-bringing-paths-into-scope-with-the-use-keyword",[C[6]]],["7.5. Separating Modules into Different Files","ch07-05-separating-modules-into-different-files",[C[6]]],[C[7],"ch08-00-common-collections",N],["8.1. Storing Lists of Values with Vectors","ch08-01-vectors",[C[7]]],["8.2. Storing UTF-8 Encoded Text with Strings","ch08-02-strings",[C[7]]],["8.3. Storing Keys with Associated Values in Hash Maps","ch08-03-hash-maps",[C[7]]],[C[8],"ch09-00-error-handling",N],["9.1. Unrecoverable Errors with panic!","ch09-01-unrecoverable-errors-with-panic",[C[8]]],["9.2. Recoverable Errors with Result","ch09-02-recoverable-errors-with-result",[C[8]]],["9.3. To panic! or Not To panic!","ch09-03-to-panic-or-not-to-panic",[C[8]]],[C[9],"ch10-00-generics",N],["10.1. Generic Data Types","ch10-01-syntax",[C[9]]],["10.2. Traits: Defining Shared Behavior","ch10-02-traits",[C[9]]],["10.3. Validating References with Lifetimes","ch10-03-lifetime-syntax",[C[9]]],[C[10],"ch11-00-testing",N],["11.1. How to Write Tests","ch11-01-writing-tests",[C[10]]],["11.2. Controlling How Tests Are Run","ch11-02-running-tests",[C[10]]],["11.3. Test Organization","ch11-03-test-organization",[C[10]]],[C[11],"ch12-00-an-io-project",N],["12.1. Accepting Command Line Arguments","ch12-01-accepting-command-line-arguments",[C[11]]],["12.2. Reading a File","ch12-02-reading-a-file",[C[11]]],["12.3. Refactoring to Improve Modularity and Error Handling","ch12-03-improving-error-handling-and-modularity",[C[11]]],["12.4. Developing the Librarys Functionality with Test Driven Development","ch12-04-testing-the-librarys-functionality",[C[11]]],["12.5. Working with Environment Variables","ch12-05-working-with-environment-variables",[C[11]]],["12.6. Writing Error Messages to Standard Error Instead of Standard Output","ch12-06-writing-to-stderr-instead-of-stdout",[C[11]]],[C[12],"ch13-00-functional-features",N],["13.1. Closures: Anonymous Functions that Can Capture Their Environment","ch13-01-closures",[C[12]]],["13.2. Processing a Series of Items with Iterators","ch13-02-iterators",[C[12]]],["13.3. Improving Our I/O Project","ch13-03-improving-our-io-project",[C[12]]],["13.4. Comparing Performance: Loops vs. Iterators","ch13-04-performance",[C[12]]],[C[13],"ch14-00-more-about-cargo",N],["14.1. Customizing Builds with Release Profiles","ch14-01-release-profiles",[C[13]]],["14.2. Publishing a Crate to Crates.io","ch14-02-publishing-to-crates-io",[C[13]]],["14.3. Cargo Workspaces","ch14-03-cargo-workspaces",[C[13]]],["14.4. Installing Binaries from Crates.io with cargo install","ch14-04-installing-binaries",[C[13]]],["14.5. Extending Cargo with Custom Commands","ch14-05-extending-cargo",[C[13]]],[C[14],"ch15-00-smart-pointers",N],["15.1. Using Box to Point to Data on the Heap","ch15-01-box",[C[14]]],["15.2. Treating Smart Pointers Like Regular References with the Deref Trait","ch15-02-deref",[C[14]]],["15.3. Running Code on Cleanup with the Drop Trait","ch15-03-drop",[C[14]]],["15.4. Rc, the Reference Counted Smart Pointer","ch15-04-rc",[C[14]]],["15.5. RefCell and the Interior Mutability Pattern","ch15-05-interior-mutability",[C[14]]],["15.6. Reference Cycles Can Leak Memory","ch15-06-reference-cycles",[C[14]]],[C[15],"ch16-00-concurrency",N],["16.1. Using Threads to Run Code Simultaneously","ch16-01-threads",[C[15]]],["16.2. Using Message Passing to Transfer Data Between Threads","ch16-02-message-passing",[C[15]]],["16.3. Shared-State Concurrency","ch16-03-shared-state",[C[15]]],["16.4. Extensible Concurrency with the Sync and Send Traits","ch16-04-extensible-concurrency-sync-and-send",[C[15]]],[C[16],"ch17-00-oop",N],["17.1. Characteristics of Object-Oriented Languages","ch17-01-what-is-oo",[C[16]]],["17.2. Using Trait Objects That Allow for Values of Different Types","ch17-02-trait-objects",[C[16]]],["17.3. Implementing an Object-Oriented Design Pattern","ch17-03-oo-design-patterns",[C[16]]],[C[17],"ch18-00-patterns",N],["18.1. All the Places Patterns Can Be Used","ch18-01-all-the-places-for-patterns",[C[17]]],["18.2. Refutability: Whether a Pattern Might Fail to Match","ch18-02-refutability",[C[17]]],["18.3. Pattern Syntax","ch18-03-pattern-syntax",[C[17]]],[C[18],"ch19-00-advanced-features",N],["19.1. Unsafe Rust","ch19-01-unsafe-rust",[C[18]]],["19.2. Advanced Traits","ch19-03-advanced-traits",[C[18]]],["19.3. Advanced Types","ch19-04-advanced-types",[C[18]]],["19.4. Advanced Functions and Closures","ch19-05-advanced-functions-and-closures",[C[18]]],["19.5. Macros","ch19-06-macros",[C[18]]],[C[19],"ch20-00-final-project-a-web-server",N],["20.1. Building a Single-Threaded Web Server","ch20-01-single-threaded",[C[19]]],["20.2. Turning Our Single-Threaded Server into a Multithreaded Server","ch20-02-multithreaded",[C[19]]],["20.3. Graceful Shutdown and Cleanup","ch20-03-graceful-shutdown-and-cleanup",[C[19]]],[C[20],"appendix-00",N],["21.1. A - Keywords","appendix-01-keywords",[C[20]]],["21.2. B - Operators and Symbols","appendix-02-operators",[C[20]]],["21.3. C - Derivable Traits","appendix-03-derivable-traits",[C[20]]],["21.4. D - Useful Development Tools","appendix-04-useful-development-tools",[C[20]]],["21.5. E - Editions","appendix-05-editions",[C[20]]],["21.6. F - Translations of the Book","appendix-06-translation",[C[20]]],["21.7. G - How Rust is Made and “Nightly Rust”","appendix-07-nightly-rust",[C[20]]]]},{"name":"Rust Async Book","url":"https://rust-lang.github.io/async-book/","pages":[[C[1],"01_getting_started/01_chapter",N],["1.1. Why Async?","01_getting_started/02_why_async",[C[1]]],["1.2. The State of Asynchronous Rust","01_getting_started/03_state_of_async_rust",[C[1]]],["1.3. async/.await Primer","01_getting_started/04_async_await_primer",[C[1]]],["1.4. Applied: HTTP Server","01_getting_started/05_http_server_example",[C[1]]],[C[21],"02_execution/01_chapter",N],["2.1. The Future Trait","02_execution/02_future",[C[21]]],["2.2. Task Wakeups with Waker","02_execution/03_wakeups",[C[21]]],["2.3. Applied: Build an Executor","02_execution/04_executor",[C[21]]],["2.4. Executors and System IO","02_execution/05_io",[C[21]]],["3. async/await","03_async_await/01_chapter",N],["4. Pinning","04_pinning/01_chapter",N],[C[22],"05_streams/01_chapter",N],["5.1. Iteration and Concurrency","05_streams/02_iteration_and_concurrency",[C[22]]],[C[23],"06_multiple_futures/01_chapter",N],["6.1. join!","06_multiple_futures/02_join",[C[23]]],["6.2. select!","06_multiple_futures/03_select",[C[23]]],["6.3. TODO: Spawning","404",[C[23]]],["6.4. TODO: Cancellation and Timeouts","404",[C[23]]],["6.5. TODO: FuturesUnordered","404",[C[23]]],[C[24],"07_workarounds/01_chapter",N],["7.1. Return Type Errors","07_workarounds/02_return_type",[C[24]]],["7.2. ? in async Blocks","07_workarounds/03_err_in_async_blocks",[C[24]]],["7.3. Send Approximation","07_workarounds/04_send_approximation",[C[24]]],["7.4. Recursion","07_workarounds/05_recursion",[C[24]]],["7.5. async in Traits","07_workarounds/06_async_in_traits",[C[24]]],[C[25],"404",N],["8.1. TODO: AsyncRead and AsyncWrite","404",[C[25]]],[C[26],"404",N],["9.1. TODO: Modeling Servers and the Request/Response Pattern","404",[C[26]]],["9.2. TODO: Managing Shared State","404",[C[26]]],[C[27],"404",N],["10.1. TODO: Lots, lots more?...","404",[C[27]]]]},{"name":"Rust Edition Guide Book","url":"https://doc.rust-lang.org/stable/edition-guide/","pages":[[C[28],C[55],N],[C[29],"editions/index",N],["1.1. Creating a new project","editions/creating-a-new-project",[C[29]]],["1.2. Transitioning an existing project to a new edition","editions/transitioning-an-existing-project-to-a-new-edition",[C[29]]],["2. Rust 2015","rust-2015/index",N],[C[30],"rust-2018/index",N],["3.1. 2018-Specific Changes","rust-2018/edition-changes",[C[30]]],[C[31],"rust-2018/module-system/index",[C[30]]],["3.2.1. Raw identifiers","rust-2018/module-system/raw-identifiers",[C[30],C[31]]],["3.2.2. Path clarity","rust-2018/module-system/path-clarity",[C[30],C[31]]],["3.2.3. More visibility modifiers","rust-2018/module-system/more-visibility-modifiers",[C[30],C[31]]],["3.2.4. Nested imports with use","rust-2018/module-system/nested-imports-with-use",[C[30],C[31]]],[C[32],"rust-2018/error-handling-and-panics/index",[C[30]]],["3.3.1. The ? operator for easier error handling","rust-2018/error-handling-and-panics/the-question-mark-operator-for-easier-error-handling",[C[30],C[32]]],["3.3.2. ? in main and tests","rust-2018/error-handling-and-panics/question-mark-in-main-and-tests",[C[30],C[32]]],["3.3.3. Controlling panics with std::panic","rust-2018/error-handling-and-panics/controlling-panics-with-std-panic",[C[30],C[32]]],["3.3.4. Aborting on panic","rust-2018/error-handling-and-panics/aborting-on-panic",[C[30],C[32]]],[C[33],"rust-2018/control-flow/index",[C[30]]],["3.4.1. Loops can break with a value","rust-2018/control-flow/loops-can-break-with-a-value",[C[30],C[33]]],["3.4.2. async/await for easier concurrency","rust-2018/control-flow/async-await-for-easier-concurrency",[C[30],C[33]]],[C[34],"rust-2018/trait-system/index",[C[30]]],["3.5.1. impl Trait for returning complex types with ease","rust-2018/trait-system/impl-trait-for-returning-complex-types-with-ease",[C[30],C[34]]],["3.5.2. dyn Trait for trait objects","rust-2018/trait-system/dyn-trait-for-trait-objects",[C[30],C[34]]],["3.5.3. More container types support trait objects","rust-2018/trait-system/more-container-types-support-trait-objects",[C[30],C[34]]],["3.5.4. Associated constants","rust-2018/trait-system/associated-constants",[C[30],C[34]]],["3.5.5. No more anonymous parameters","rust-2018/trait-system/no-anon-params",[C[30],C[34]]],["3.6. Slice patterns","rust-2018/slice-patterns",[C[30]]],[C[35],"rust-2018/ownership-and-lifetimes/index",[C[30]]],["3.7.1. Non-lexical lifetimes","rust-2018/ownership-and-lifetimes/non-lexical-lifetimes",[C[30],C[35]]],["3.7.2. Default match bindings","rust-2018/ownership-and-lifetimes/default-match-bindings",[C[30],C[35]]],["3.7.3. '_, the anonymous lifetime","rust-2018/ownership-and-lifetimes/the-anonymous-lifetime",[C[30],C[35]]],["3.7.4. Lifetime elision in impl","rust-2018/ownership-and-lifetimes/lifetime-elision-in-impl",[C[30],C[35]]],["3.7.5. T: 'a inference in structs","rust-2018/ownership-and-lifetimes/inference-in-structs",[C[30],C[35]]],["3.7.6. Simpler lifetimes in static and const","rust-2018/ownership-and-lifetimes/simpler-lifetimes-in-static-and-const",[C[30],C[35]]],[C[36],"rust-2018/data-types/index",[C[30]]],["3.8.1. Field init shorthand","rust-2018/data-types/field-init-shorthand",[C[30],C[36]]],["3.8.2. ..= for inclusive ranges","rust-2018/data-types/inclusive-ranges",[C[30],C[36]]],["3.8.3. 128 bit integers","rust-2018/data-types/128-bit-integers",[C[30],C[36]]],["3.8.4. \"Operator-equals\" are now implementable","rust-2018/data-types/operator-equals-are-now-implementable",[C[30],C[36]]],["3.8.5. union for an unsafe form of enum","rust-2018/data-types/union-for-an-unsafe-form-of-enum",[C[30],C[36]]],["3.8.6. Choosing alignment with the repr attribute","rust-2018/data-types/choosing-alignment-with-the-repr-attribute",[C[30],C[36]]],["3.9. SIMD for faster computing","rust-2018/simd-for-faster-computing",[C[30]]],[C[37],"rust-2018/macros/index",[C[30]]],["3.10.1. Custom Derive","rust-2018/macros/custom-derive",[C[30],C[37]]],["3.10.2. Macro changes","rust-2018/macros/macro-changes",[C[30],C[37]]],["3.10.3. At most one repetition","rust-2018/macros/at-most-once",[C[30],C[37]]],[C[38],"rust-2018/the-compiler/index",[C[30]]],["3.11.1. Improved error messages","rust-2018/the-compiler/improved-error-messages",[C[30],C[38]]],["3.11.2. Incremental Compilation for faster compiles","rust-2018/the-compiler/incremental-compilation-for-faster-compiles",[C[30],C[38]]],["3.11.3. An attribute for deprecation","rust-2018/the-compiler/an-attribute-for-deprecation",[C[30],C[38]]],["3.12. Rustup for managing Rust versions","rust-2018/rustup-for-managing-rust-versions",[C[30]]],[C[39],"rust-2018/cargo-and-crates-io/index",[C[30]]],["3.13.1. cargo check for faster checking","rust-2018/cargo-and-crates-io/cargo-check-for-faster-checking",[C[30],C[39]]],["3.13.2. cargo install for easy installation of tools","rust-2018/cargo-and-crates-io/cargo-install-for-easy-installation-of-tools",[C[30],C[39]]],["3.13.3. cargo new defaults to a binary project","rust-2018/cargo-and-crates-io/cargo-new-defaults-to-a-binary-project",[C[30],C[39]]],["3.13.4. cargo rustc for passing arbitrary flags to rustc","rust-2018/cargo-and-crates-io/cargo-rustc-for-passing-arbitrary-flags-to-rustc",[C[30],C[39]]],["3.13.5. Cargo workspaces for multi-package projects","rust-2018/cargo-and-crates-io/cargo-workspaces-for-multi-package-projects",[C[30],C[39]]],["3.13.6. Multi-file examples","rust-2018/cargo-and-crates-io/multi-file-examples",[C[30],C[39]]],["3.13.7. Replacing dependencies with patch","rust-2018/cargo-and-crates-io/replacing-dependencies-with-patch",[C[30],C[39]]],["3.13.8. Cargo can use a local registry replacement","rust-2018/cargo-and-crates-io/cargo-can-use-a-local-registry-replacement",[C[30],C[39]]],["3.13.9. Crates.io disallows wildcard dependencies","rust-2018/cargo-and-crates-io/crates-io-disallows-wildcard-dependencies",[C[30],C[39]]],[C[40],"rust-2018/documentation/index",[C[30]]],["3.14.1. New editions of the \"the book\"","rust-2018/documentation/new-editions-of-the-book",[C[30],C[40]]],["3.14.2. The Rust Bookshelf","rust-2018/documentation/the-rust-bookshelf",[C[30],C[40]]],["3.14.3. The Rustonomicon","rust-2018/documentation/the-rustonomicon",[C[30],C[40]]],["3.14.4. Full documentation for std::os","rust-2018/documentation/std-os-has-documentation-for-all-platforms",[C[30],C[40]]],[C[41],"rust-2018/rustdoc/index",[C[30]]],["3.15.1. Documentation tests can now compile-fail","rust-2018/rustdoc/documentation-tests-can-now-compile-fail",[C[30],C[41]]],["3.15.2. Rustdoc uses CommonMark","rust-2018/rustdoc/rustdoc-uses-commonmark",[C[30],C[41]]],[C[42],"rust-2018/platform-and-target-support/index",[C[30]]],["3.16.1. libcore for low-level Rust","rust-2018/platform-and-target-support/libcore-for-low-level-rust",[C[30],C[42]]],["3.16.2. WebAssembly support","rust-2018/platform-and-target-support/webassembly-support",[C[30],C[42]]],["3.16.3. Global allocators","rust-2018/platform-and-target-support/global-allocators",[C[30],C[42]]],["3.16.4. MSVC toolchain support","rust-2018/platform-and-target-support/msvc-toolchain-support",[C[30],C[42]]],["3.16.5. MUSL support for fully static binaries","rust-2018/platform-and-target-support/musl-support-for-fully-static-binaries",[C[30],C[42]]],["3.16.6. cdylib crates for C interoperability","rust-2018/platform-and-target-support/cdylib-crates-for-c-interoperability",[C[30],C[42]]]]},{"name":"The Cargo Book","url":"https://doc.rust-lang.org/cargo/","pages":[[C[28],"index",N],[C[1],"getting-started/index",N],[C[43],"getting-started/installation",[C[1]]],["1.2. First Steps with Cargo","getting-started/first-steps",[C[1]]],[C[44],"guide/index",N],["2.1. Why Cargo Exists","guide/why-cargo-exists",[C[44]]],["2.2. Creating a New Package","guide/creating-a-new-project",[C[44]]],["2.3. Working on an Existing Package","guide/working-on-an-existing-project",[C[44]]],["2.4. Dependencies","guide/dependencies",[C[44]]],["2.5. Package Layout","guide/project-layout",[C[44]]],["2.6. Cargo.toml vs Cargo.lock","guide/cargo-toml-vs-cargo-lock",[C[44]]],["2.7. Tests","guide/tests",[C[44]]],["2.8. Continuous Integration","guide/continuous-integration",[C[44]]],["2.9. Cargo Home","guide/cargo-home",[C[44]]],["2.10. Build Cache","guide/build-cache",[C[44]]],[C[45],C[58],N],[C[46],"reference/specifying-dependencies",[C[45]]],["3.1.1. Overriding Dependencies","reference/overriding-dependencies",[C[45],C[46]]],[C[47],"reference/manifest",[C[45]]],["3.2.1. Cargo Targets","reference/cargo-targets",[C[45],C[47]]],["3.3. Workspaces","reference/workspaces",[C[45]]],["3.4. Features","reference/features",[C[45]]],["3.5. Profiles","reference/profiles",[C[45]]],["3.6. Configuration","reference/config",[C[45]]],["3.7. Environment Variables","reference/environment-variables",[C[45]]],[C[48],"reference/build-scripts",[C[45]]],["3.8.1. Build Script Examples","reference/build-script-examples",[C[45],C[48]]],["3.9. Publishing on crates.io","reference/publishing",[C[45]]],["3.10. Package ID Specifications","reference/pkgid-spec",[C[45]]],["3.11. Source Replacement","reference/source-replacement",[C[45]]],["3.12. External Tools","reference/external-tools",[C[45]]],["3.13. Registries","reference/registries",[C[45]]],["3.14. Unstable Features","reference/unstable",[C[45]]],[C[49],"commands/index",N],[C[50],"commands/general-commands",[C[49]]],["4.1.1. cargo","commands/cargo",[C[49],C[50]]],["4.1.2. cargo help","commands/cargo-help",[C[49],C[50]]],["4.1.3. cargo version","commands/cargo-version",[C[49],C[50]]],[C[51],"commands/build-commands",[C[49]]],["4.2.1. cargo bench","commands/cargo-bench",[C[49],C[51]]],["4.2.2. cargo build","commands/cargo-build",[C[49],C[51]]],["4.2.3. cargo check","commands/cargo-check",[C[49],C[51]]],["4.2.4. cargo clean","commands/cargo-clean",[C[49],C[51]]],["4.2.5. cargo doc","commands/cargo-doc",[C[49],C[51]]],["4.2.6. cargo fetch","commands/cargo-fetch",[C[49],C[51]]],["4.2.7. cargo fix","commands/cargo-fix",[C[49],C[51]]],["4.2.8. cargo run","commands/cargo-run",[C[49],C[51]]],["4.2.9. cargo rustc","commands/cargo-rustc",[C[49],C[51]]],["4.2.10. cargo rustdoc","commands/cargo-rustdoc",[C[49],C[51]]],["4.2.11. cargo test","commands/cargo-test",[C[49],C[51]]],[C[52],"commands/manifest-commands",[C[49]]],["4.3.1. cargo generate-lockfile","commands/cargo-generate-lockfile",[C[49],C[52]]],["4.3.2. cargo locate-project","commands/cargo-locate-project",[C[49],C[52]]],["4.3.3. cargo metadata","commands/cargo-metadata",[C[49],C[52]]],["4.3.4. cargo pkgid","commands/cargo-pkgid",[C[49],C[52]]],["4.3.5. cargo update","commands/cargo-update",[C[49],C[52]]],["4.3.6. cargo vendor","commands/cargo-vendor",[C[49],C[52]]],["4.3.7. cargo verify-project","commands/cargo-verify-project",[C[49],C[52]]],[C[53],"commands/package-commands",[C[49]]],["4.4.1. cargo init","commands/cargo-init",[C[49],C[53]]],["4.4.2. cargo install","commands/cargo-install",[C[49],C[53]]],["4.4.3. cargo new","commands/cargo-new",[C[49],C[53]]],["4.4.4. cargo search","commands/cargo-search",[C[49],C[53]]],["4.4.5. cargo uninstall","commands/cargo-uninstall",[C[49],C[53]]],[C[54],"commands/publishing-commands",[C[49]]],["4.5.1. cargo login","commands/cargo-login",[C[49],C[54]]],["4.5.2. cargo owner","commands/cargo-owner",[C[49],C[54]]],["4.5.3. cargo package","commands/cargo-package",[C[49],C[54]]],["4.5.4. cargo publish","commands/cargo-publish",[C[49],C[54]]],["4.5.5. cargo yank","commands/cargo-yank",[C[49],C[54]]],["5. FAQ","faq",N],["6. Appendix: Glossary",C[67],N],["7. Appendix: Git Authentication","appendix/git-authentication",N]]},{"name":"Rust and WebAssembly Book","url":"https://rustwasm.github.io/docs/book/","pages":[[C[60],C[55],N],["2. Why Rust and WebAssembly?","why-rust-and-webassembly",N],[C[56],"background-and-concepts",N],["3.1. What is WebAssembly?","what-is-webassembly",[C[56]]],[C[57],"game-of-life/introduction",N],["4.1. Setup","game-of-life/setup",[C[57]]],["4.2. Hello, World!","game-of-life/hello-world",[C[57]]],["4.3. Rules","game-of-life/rules",[C[57]]],["4.4. Implementing Life","game-of-life/implementing",[C[57]]],["4.5. Testing Life","game-of-life/testing",[C[57]]],["4.6. Debugging","game-of-life/debugging",[C[57]]],["4.7. Adding Interactivity","game-of-life/interactivity",[C[57]]],["4.8. Time Profiling","game-of-life/time-profiling",[C[57]]],["4.9. Shrinking .wasm Size","game-of-life/code-size",[C[57]]],["4.10. Publishing to npm","game-of-life/publishing-to-npm",[C[57]]],[C[59],C[58],N],["5.1. Crates You Should Know","reference/crates",[C[59]]],["5.2. Tools You Should Know","reference/tools",[C[59]]],["5.3. Project Templates","reference/project-templates",[C[59]]],["5.4. Debugging","reference/debugging",[C[59]]],["5.5. Time Profiling","reference/time-profiling",[C[59]]],["5.6. Shrinking .wasm Size","reference/code-size",[C[59]]],["5.7. JavaScript Interoperation","reference/js-ffi",[C[59]]],["5.8. Which Crates Will Work Off-the-Shelf with WebAssembly?","reference/which-crates-work-with-wasm",[C[59]]],["5.9. How to Add WebAssembly Support to a General-Purpose Crate","reference/add-wasm-support-to-crate",[C[59]]],["5.10. Deploying Rust and WebAssembly to Production","reference/deploying-to-production",[C[59]]]]},{"name":"The Embedded Rust Book","url":"https://rust-embedded.github.io/book/","pages":[[C[60],"intro/index",N],["1.1. Hardware","intro/hardware",[C[60]]],["1.2. no_std","intro/no-std",[C[60]]],["1.3. Tooling","intro/tooling",[C[60]]],[C[61],"intro/install",[C[60]]],["1.4.1. Linux","intro/install/linux",[C[60],C[61]]],["1.4.2. MacOS","intro/install/macos",[C[60],C[61]]],["1.4.3. Windows","intro/install/windows",[C[60],C[61]]],["1.4.4. Verify Installation","intro/install/verify",[C[60],C[61]]],[C[62],"start/index",N],["2.1. QEMU","start/qemu",[C[62]]],["2.2. Hardware","start/hardware",[C[62]]],["2.3. Memory-mapped Registers","start/registers",[C[62]]],["2.4. Semihosting","start/semihosting",[C[62]]],["2.5. Panicking","start/panicking",[C[62]]],["2.6. Exceptions","start/exceptions",[C[62]]],["2.7. Interrupts","start/interrupts",[C[62]]],["2.8. IO","start/io",[C[62]]],[C[63],"peripherals/index",N],["3.1. A first attempt in Rust","peripherals/a-first-attempt",[C[63]]],["3.2. The Borrow Checker","peripherals/borrowck",[C[63]]],["3.3. Singletons","peripherals/singletons",[C[63]]],[C[64],"static-guarantees/index",N],["4.1. Typestate Programming","static-guarantees/typestate-programming",[C[64]]],["4.2. Peripherals as State Machines","static-guarantees/state-machines",[C[64]]],["4.3. Design Contracts","static-guarantees/design-contracts",[C[64]]],["4.4. Zero Cost Abstractions","static-guarantees/zero-cost-abstractions",[C[64]]],["5. Portability","portability/index",N],["6. Concurrency","concurrency/index",N],["7. Collections","collections/index",N],["8. Tips for embedded C developers","c-tips/index",N],[C[65],"interoperability/index",N],["9.1. A little C with your Rust","interoperability/c-with-rust",[C[65]]],["9.2. A little Rust with your C","interoperability/rust-with-c",[C[65]]],[C[66],"unsorted/index",N],["10.1. Optimizations: The speed size tradeoff","unsorted/speed-vs-size",[C[66]]],["Appendix A: Glossary",C[67],N]]},{"name":"The Rust Cookbook","url":"https://rust-lang-nursery.github.io/rust-cookbook/","pages":[["Table of Contents","intro",N],["About","about",N],[C[68],"algorithms",N],["1.1. Generate Random Values","algorithms/randomness",[C[68]]],["1.2. Sort a Vector","algorithms/sorting",[C[68]]],[C[69],"cli",N],["2.1. Argument Parsing","cli/arguments",[C[69]]],["2.2. ANSI Terminal","cli/ansi_terminal",[C[69]]],[C[70],"compression",N],["3.1. Working with Tarballs","compression/tar",[C[70]]],[C[71],"concurrency",N],["4.1. Explicit Threads","concurrency/threads",[C[71]]],["4.2. Data Parallelism","concurrency/parallel",[C[71]]],[C[72],"cryptography",N],["5.1. Hashing","cryptography/hashing",[C[72]]],["5.2. Encryption","cryptography/encryption",[C[72]]],[C[73],"data_structures",N],["6.1. Bitfield","data_structures/bitfield",[C[73]]],[C[74],"database",N],["7.1. SQLite","database/sqlite",[C[74]]],["7.2. Postgres","database/postgres",[C[74]]],[C[75],"datetime",N],["8.1. Duration and Calculation","datetime/duration",[C[75]]],["8.2. Parsing and Displaying","datetime/parse",[C[75]]],[C[76],"development_tools",N],[C[77],"development_tools/debugging",[C[76]]],["9.1.1. Log Messages","development_tools/debugging/log",[C[76],C[77]]],["9.1.2. Configure Logging","development_tools/debugging/config_log",[C[76],C[77]]],["9.2. Versioning","development_tools/versioning",[C[76]]],["9.3. Build Time Tooling","development_tools/build_tools",[C[76]]],[C[78],"encoding",N],["10.1. Character Sets","encoding/strings",[C[78]]],["10.2. CSV processing","encoding/csv",[C[78]]],["10.3. Structured Data","encoding/complex",[C[78]]],[C[79],"errors",N],["11.1. Handle Error Variants","errors/handle",[C[79]]],[C[80],"file",N],["12.1. Read & Write","file/read-write",[C[80]]],["12.2. Directory Traversal","file/dir",[C[80]]],[C[81],"hardware",N],["13.1. Processor","hardware/processor",[C[81]]],[C[82],"mem",N],["14.1. Global Static","mem/global_static",[C[82]]],[C[83],"net",N],["15.1. Server","net/server",[C[83]]],[C[84],"os",N],["16.1. External Command","os/external",[C[84]]],[C[85],"science",N],[C[86],"science/mathematics",[C[85]]],["17.1.1. Linear Algebra","science/mathematics/linear_algebra",[C[85],C[86]]],["17.1.2. Trigonometry","science/mathematics/trigonometry",[C[85],C[86]]],["17.1.3. Complex Numbers","science/mathematics/complex_numbers",[C[85],C[86]]],["17.1.4. Statistics","science/mathematics/statistics",[C[85],C[86]]],["17.1.5. Miscellaneous","science/mathematics/miscellaneous",[C[85],C[86]]],[C[87],"text",N],["18.1. Regular Expressions","text/regex",[C[87]]],["18.2. String Parsing","text/string_parsing",[C[87]]],[C[88],"web",N],["19.1. Extracting Links","web/scraping",[C[88]]],["19.2. URL","web/url",[C[88]]],["19.3. Media Types","web/mime",[C[88]]],[C[89],"web/clients",[C[88]]],["19.4.1. Making Requests","web/clients/requests",[C[88],C[89]]],["19.4.2. Calling a Web API","web/clients/apis",[C[88],C[89]]],["19.4.3. Downloads","web/clients/download",[C[88],C[89]]]]}];