From 488f3b3677b4ab48eadd99d1a285af6af9e96bdc Mon Sep 17 00:00:00 2001 From: Folyd Date: Wed, 16 Oct 2024 16:32:53 +0800 Subject: [PATCH] Update search index --- lib/index/books.js | 2 +- lib/index/caniuse.js | 2 +- lib/index/labels.js | 2 +- lib/index/lints.js | 2 +- rust/src/tasks/lints.rs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/index/books.js b/lib/index/books.js index 21a5399..37e7ab4 100644 --- a/lib/index/books.js +++ b/lib/index/books.js @@ -1 +1 @@ -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","9. Final Project: HTTP Server","Introduction","1. What are editions?","3. Rust 2018","4. Rust 2021","5. Rust 2024 🚧","1.1. Installation","2. Cargo Guide","3. Cargo Reference","3.1. Specifying Dependencies","3.2. The Manifest Format","3.4. Features","3.8. Build Scripts","3.13. Registries","3.13.1. Registry Authentication","3.13.2. Running a Registry","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","3. Prerequisites","commands/index","4. Commands","5. Tutorials","5.1. Hybrid applications with Webpack","5.2. npm browser packages","5.2.1. Getting started","5.2.2. Template deep dive","1.4. Installation","2. Getting started","3. Peripherals","4. Static Guarantees","8. Design Patterns","8.1. HALs","10. Interoperability","11. 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","1. A command line app in 15 minutes","2. In-depth topics","1. Hello World","1.2. Formatted print","1.2.2. Display","2. Primitives","3. Custom Types","3.2. Enums","4. Variable Bindings","5. Types","6. Conversion","8. Flow of Control","8.2. loop","8.5. match","8.5.1. Destructuring","9. Functions","9.2. Closures","9.2.6. Examples in std","10. Modules","11. Crates","12. Cargo","13. Attributes","13.3. cfg","14. Generics","14.4. Bounds","14.8. Associated items","14.9. Phantom type parameters","15. Scoping rules","15.2. Ownership and moves","15.3. Borrowing","15.4. Lifetimes","16. Traits","17. macro_rules!","17.1. Syntax","18. Error handling","18.3. Option & unwrap","18.4. Result","18.5. Multiple error types","19. Std library types","19.5. Result","19.7. HashMap","20. Std misc","20.1. Threads","20.4. File I/O","20.5. Child processes","20.7. Program arguments","21. Testing","22. Unsafe Operations","23. Compatibility","24. Meta","0001-private-fields","0002-rfc-process","0003-attribute-usage","0008-new-intrinsics","0016-more-attributes","0019-opt-in-builtin-traits","0026-remove-priv","0034-bounded-type-parameters","0040-libstd-facade","0042-regexps","0048-traits","0049-match-arm-attributes","0050-assert","0059-remove-tilde","0060-rename-strbuf","0063-module-file-system-hierarchy","0066-better-temporary-lifetimes","0068-const-unsafe-pointers","0069-ascii-literals","0071-const-block-expr","0079-undefined-struct-layout","0085-pattern-macros","0086-plugin-registrar","0087-trait-bounds-with-plus","0089-loadable-lints","0090-lexical-syntax-simplification","0092-struct-grammar","0093-remove-format-intl","0100-partial-cmp","0107-pattern-guards-with-bind-by-move","0109-remove-crate-id","0111-index-traits","0112-remove-cross-borrowing","0114-closures","0115-rm-integer-fallback","0116-no-module-shadowing","0123-share-to-threadsafe","0130-box-not-special","0131-target-specification","0132-ufcs","0135-where","0136-no-privates-in-public","0139-remove-cross-borrowing-entirely","0141-lifetime-elision","0151-capture-by-value","0155-anonymous-impl-only-in-same-module","0160-if-let","0164-feature-gate-slice-pats","0169-use-path-as-id","0179-and-mut-patterns","0184-tuple-accessors","0192-bounds-on-object-and-generic-types","0194-cfg-syntax","0195-associated-items","0198-slice-notation","0199-ownership-variants","0201-error-chaining","0202-subslice-syntax-change","0212-restore-int-fallback","0213-defaulted-type-params","0214-while-let","0216-collection-views","0218-empty-struct-with-braces","0221-panic","0230-remove-runtime","0231-upvar-capture-inference","0234-variants-namespace","0235-collections-conventions","0236-error-conventions","0240-unsafe-api-location","0241-deref-conversions","0243-trait-based-exception-handling","0246-const-vs-static","0255-object-safety","0256-remove-refcounting-gc-of-t","0320-nonzeroing-dynamic-drop","0326-restrict-xXX-to-ascii","0339-statically-sized-literals","0341-remove-virtual-structs","0342-keywords","0344-conventions-galore","0356-no-module-prefixes","0369-num-reform","0378-expr-macros","0379-remove-reflection","0380-stabilize-std-fmt","0385-module-system-cleanup","0387-higher-ranked-trait-bounds","0390-enum-namespacing","0401-coercions","0403-cargo-build-command","0404-change-prefer-dynamic","0418-struct-variants","0430-finalizing-naming-conventions","0438-precedence-of-plus","0439-cmp-ops-reform","0445-extension-trait-conventions","0446-es6-unicode-escapes","0447-no-unused-impl-parameters","0450-un-feature-gate-some-more-gates","0453-macro-reform","0458-send-improvements","0459-disallow-shadowing","0461-tls-overhaul","0463-future-proof-literal-suffixes","0469-feature-gate-box-patterns","0474-path-reform","0486-std-ascii-reform","0490-dst-syntax","0494-c_str-and-c_vec-stability","0495-array-pattern-changes","0501-consistent_no_prelude_attributes","0503-prelude-stabilization","0504-show-stabilization","0505-api-comment-conventions","0507-release-channels","0509-collections-reform-part-2","0517-io-os-reform","0520-new-array-repeat-syntax","0522-self-impl","0526-fmt-text-writer","0528-string-patterns","0529-conversion-traits","0531-define-rfc-scope","0532-self-in-use","0533-no-array-elem-moves","0534-deriving2derive","0544-rename-int-uint","0546-Self-not-sized-by-default","0550-macro-future-proofing","0556-raw-lifetime","0558-require-parentheses-for-chained-comparisons","0560-integer-overflow","0563-remove-ndebug","0565-show-string-guidelines","0572-rustc-attribute","0574-drain-range","0580-rename-collections","0587-fn-return-should-be-an-associated-type","0592-c-str-deref","0593-forbid-Self-definitions","0599-default-object-bound","0601-replace-be-with-become","0639-discriminant-intrinsic","0640-debug-improvements","0702-rangefull-expression","0735-allow-inherent-impls-anywhere","0736-privacy-respecting-fru","0738-variance","0769-sound-generic-drop","0771-std-iter-once","0803-type-ascription","0809-box-and-in-for-stdlib","0823-hash-simplification","0832-from-elem-with-love","0839-embrace-extend-extinguish","0840-no-panic-in-c-string","0873-type-macros","0879-small-base-lexing","0888-compiler-fence-intrinsics","0909-move-thread-local-to-std-thread","0911-const-fn","0921-entry_v3","0940-hyphens-considered-harmful","0953-op-assign","0968-closure-return-type-syntax","0979-align-splitn-with-other-languages","0980-read-exact","0982-dst-coercion","1011-process.exit","1014-stdout-existential-crisis","1023-rebalancing-coherence","1030-prelude-additions","1040-duration-reform","1044-io-fs-2.1","1047-socket-timeouts","1048-rename-soft-link-to-symlink","1054-str-words","1057-io-error-sync","1058-slice-tail-redesign","1066-safe-mem-forget","1068-rust-governance","1096-remove-static-assert","1102-rename-connect-to-join","1105-api-evolution","1119-result-expect","1122-language-semver","1123-str-split-at","1131-likely-intrinsic","1135-raw-pointer-comparisons","1152-slice-string-symmetry","1156-adjust-default-object-bounds","1174-into-raw-fd-socket-handle-traits","1183-swap-out-jemalloc","1184-stabilize-no_std","1192-inclusive-ranges","1193-cap-lints","1194-set-recovery","1199-simd-infrastructure","1200-cargo-install","1201-naked-fns","1210-impl-specialization","1212-line-endings","1214-projections-lifetimes-and-wf","1216-bang-type","1219-use-group-as","1228-placement-left-arrow","1229-compile-time-asserts","1236-stabilize-catch-panic","1238-nonparametric-dropck","1240-repr-packed-unsafe-ref","1241-no-wildcard-deps","1242-rust-lang-crates","1252-open-options","1257-drain-range-2","1260-main-reexport","1268-allow-overlapping-impls-on-marker-traits","1270-deprecation","1288-time-improvements","1291-promote-libc","1298-incremental-compilation","1300-intrinsic-semantics","1307-osstring-methods","1327-dropck-param-eyepatch","1328-global-panic-handler","1331-grammar-is-canonical","1358-repr-align","1359-process-ext-unix","1361-cargo-cfg-dependencies","1398-kinds-of-allocators","1399-repr-pack","1414-rvalue_static_promotion","1415-trim-std-os","1419-slice-copy","1422-pub-restricted","1432-replace-slice","1434-contains-method-for-ranges","1440-drop-types-in-const","1443-extended-compare-and-swap","1444-union","1445-restrict-constants-in-patterns","1461-net2-mutators","1467-volatile","1479-unix-socket","1492-dotdot-in-patterns","1498-ipv6addr-octets","1504-int128","1506-adt-kinds","1510-cdylib","1513-less-unwinding","1521-copy-clone-semantics","1522-conservative-impl-trait","1525-cargo-workspace","1535-stable-overflow-checks","1542-try-from","1543-integer_atomics","1548-global-asm","1552-contains-method-for-various-collections","1558-closure-to-fn-coercion","1559-attributes-with-literals","1560-name-resolution","1561-macro-naming","1566-proc-macros","1567-long-error-codes-explanation-normalization","1574-more-api-documentation-conventions","1576-macros-literal-matcher","1581-fused-iterator","1584-macros","1589-rustc-bug-fix-procedure","1590-macro-lifetimes","1598-generic_associated_types","1607-style-rfcs","1618-ergonomic-format-args","1620-regex-1.0","1623-static","1624-loop-break-value","1636-document_all_features","1640-duration-checked-sub","1643-memory-model-strike-team","1644-default-and-expanded-rustc-errors","1647-allow-self-in-where-clauses","1649-atomic-access","1651-movecell","1653-assert_ne","1660-try-borrow","1665-windows-subsystem","1679-panic-safe-slicing","1681-macros-1.1","1682-field-init-shorthand","1683-docs-team","1685-deprecate-anonymous-parameters","1695-add-error-macro","1696-discriminant","1717-dllimport","1721-crt-static","1725-unaligned-access","1728-north-star","1733-trait-alias","1758-repr-transparent","1774-roadmap-2017","1789-as-cell","1824-crates.io-default-ranking","1826-change-doc-default-urls","1828-rust-bookshelf","1845-shared-from-slice","1849-non-static-type-id","1857-stabilize-drop-order","1859-try-trait","1860-manually-drop","1861-extern-types","1866-more-readable-assert-eq","1868-portability-lint","1869-eprintln","1884-unstable-sort","1892-uninitialized-uninhabited","1909-unsized-rvalues","1925-optional-match-vert","1937-ques-in-main","1940-must-use-functions","1946-intra-rustdoc-links","1951-expand-impl-trait","1961-clamp","1966-unsafe-pointer-reform","1969-cargo-prepublish","1974-global-allocators","1977-public-private-dependencies","1983-nursery-deprecation","1985-tiered-browser-support","1990-external-doc-attribute","2000-const-generics","2005-match-ergonomics","2008-non-exhaustive","2011-generic-assert","2025-nested-method-calls","2027-object_safe_for_dispatch","2033-experimental-coroutines","2043-is-aligned-intrinsic","2044-license-rfcs","2045-target-feature","2046-label-break-value","2052-epochs","2056-allow-trivial-where-clause-constraints","2057-refcell-replace","2070-panic-implementation","2071-impl-trait-existential-types","2071-impl-trait-type-alias","2086-allow-if-let-irrefutables","2089-implied-bounds","2091-inline-semantic","2093-infer-outlives","2102-unnamed-fields","2103-tool-attributes","2113-dyn-trait-syntax","2115-argument-lifetimes","2116-alloc-me-maybe","2124-option-filter","2126-path-clarity","2128-use-nested-groups","2132-copy-closures","2133-all-the-clones","2136-build-systems","2137-variadic","2141-alternative-registries","2145-type-privacy","2151-raw-identifiers","2166-impl-only-use","2169-euclidean-modulo","2175-if-while-or-patterns","2195-really-tagged-unions","2196-metabuild","2203-const-repeat-expr","2226-fmt-debug-hex","2229-capture-disjoint-fields","2230-bury-description","2235-libc-struct-traits","2250-finalize-impl-dyn-syntax","2282-profile-dependencies","2289-associated-type-bounds","2294-if-let-guard","2295-os-str-pattern","2296-option-replace","2298-macro-at-most-once-rep","2300-self-in-typedefs","2302-tuple-struct-self-ctor","2306-convert-id","2307-concrete-nonzero-types","2314-roadmap-2018","2316-safe-unsafe-trait-methods","2318-custom-test-frameworks","2325-stable-simd","2333-prior-art","2338-type-alias-enum-variants","2341-const-locals","2342-const-control-flow","2344-const-looping","2345-const-panic","2351-is-sorted","2359-subslice-pattern-syntax","2360-bench-black-box","2361-dbg-macro","2363-arbitrary-enum-discriminant","2383-lint-reasons","2386-used","2388-try-expr","2394-async_await","2396-target-feature-1.1","2397-do-not-recommend","2412-optimize-attr","2420-unreserve-proc","2421-unreservations-2018","2436-style-guide","2437-rustfmt-stability","2438-deny-integer-literal-overflow-lint","2451-re-rebalancing-coherence","2457-non-ascii-idents","2471-lint-test-inner-function","2476-clippy-uno","2480-liballoc","2495-min-rust-version","2497-if-let-chains","2500-needle","2504-fix-error","2509-byte-concat","2514-union-initialization-and-drop","2515-type_alias_impl_trait","2521-c_void-reunification","2523-cfg-path-version","2526-const-wildcard","2528-type-changing-struct-update-syntax","2532-associated-type-defaults","2535-or-patterns","2539-cfg_attr-multiple-attrs","2561-future-possibilities","2565-formal-function-parameter-attributes","2570-linked-list-cursors","2574-simd-ffi","2580-ptr-meta","2582-raw-reference-mir-operator","2585-unsafe-block-in-unsafe-fn","2591-exhaustive-integer-pattern-matching","2592-futures","2603-rust-symbol-name-mangling-v0","2627-raw-dylib-kind","2645-transparent-unions","2657-roadmap-2019","2678-named-custom-cargo-profiles","2689-compiler-team-contributors","2696-debug-map-key-value","2700-associated-constants-on-ints","2707-dotdot-patterns","2730-cargo-token-from-process","2788-standard-lazy-types","2789-sparse-index","2795-format-args-implicit-identifiers","2797-project-ffi-unwind","2803-target-tier-policy","2832-core-net-types","2834-cargo-report-future-incompat","2835-project-safe-transmute","2836-project-asm","2837-demote-apple-32bit","2841-export-executable-symbols","2843-llvm-asm","2845-supertrait-item-shadowing","2856-project-groups","2857-roadmap-2020","2867-isa-attribute","2872-github-access-policy","2873-inline-asm","2904-compiler-major-change-process","2906-cargo-workspace-deduplicate","2909-destructuring-assignment","2912-rust-analyzer","2920-inline-const","2930-read-buf","2945-c-unwind-abi","2947-crates-io-token-scopes","2951-native-link-modifiers","2957-cargo-features2","2959-promote-aarch64-unknown-linux-gnu-to-tier1","2963-rustdoc-json","2965-project-error-handling","2972-constrained-naked","2977-stdsimd","2992-cfg-target-abi","2996-async-iterator","3007-panic-plan","3013-conditional-compilation-checking","3014-must-not-suspend-lint","3016-const-ub","3027-infallible-promotion","3028-cargo-binary-dependencies","3037-roadmap-2021","3052-optional-authors-field","3058-try-trait-v2","3085-edition-2021","3086-macro-metavar-expr","3101-reserved_prefixes","3107-derive-default-enum","3114-prelude-2021","3119-rust-crate-ownership","3123-rustdoc-scrape-examples","3127-trim-paths","3128-io-safety","3137-let-else","3139-cargo-alternative-registry-auth","3143-cargo-weak-namespaced-features","3151-scoped-threads","3173-float-next-up-down","3176-cargo-multi-dep-artifacts","3180-cargo-cli-crate-type","3184-thread-local-cell-methods","3185-static-async-fn-in-trait","3191-debugger-visualizer","3192-dyno","3216-closure-lifetime-binder","3228-process-process_group","3231-cargo-asymmetric-tokens","3239-cfg-target","3243-packages-as-optional-namespaces","3245-refined-impls","3254-types-team","3262-compiler-team-rolling-leads","3289-source_replacement_ambiguity","3307-de-rfc-type-ascription","3308-offset_of","3309-style-team","3323-restrictions","3324-dyn-upcasting","3325-unsafe-attributes","3327-lang-team-advisors","3336-maybe-dangling","3338-style-evolution","3346-t-opsem","3348-c-str-literal","3349-mixed-utf8-literals","3355-rust-spec","3368-diagnostic-attribute-namespace","3373-avoid-nonlocal-definitions-in-fns","3389-manifest-lint","3391-result_ffi_guarantees","3392-leadership-council","3399-cfg-attribute-in-where","3416-feature-metadata","3424-cargo-script","3425-return-position-impl-trait-in-traits","3453-f16-and-f128","3455-t-test","3463-crates-io-policy-update","3467-unsafe-pinned","3477-cargo-check-lang-policy","3484-unsafe-extern-blocks","3491-remove-implicit-features","3493-precise-pre-release-cargo-update","3498-lifetime-capture-rules-2024","3501-edition-2024","3502-cargo-script","3503-frontmatter","3509-prelude-2024-future","3513-gen-blocks","3514-float-semantics","3516-public-private-dependencies","3519-arbitrary-self-types-v2","3529-cargo-path-bases","3531-macro-fragment-policy","3533-combine-infra-and-release-teams","3535-constants-in-patterns","3537-msrv-resolver","3543-patchable-function-entry","3550-new-range","3558-libtest-json","3559-rust-has-provenance","3593-unprefixed-guarded-strings","3595-move-crates-io-team-under-dev-tools","3599-compiler-team-reorganisation","3606-temporary-lifetimes-in-tail-expressions","3614-project-goals","3617-precise-capturing","3621-derive-smart-pointer","3627-match-ergonomics-2024","3637-guard-patterns","3646-remove-crate-transfer-mediation-policy","3654-return-type-notation","3660-crates-io-crate-deletions","3668-async-closures","3671-promote-aarch64-apple-darwin-to-tier-1","3672-Project-Goals-2024h2","3. How to read rustdoc output","4. How to write documentation","command-line-arguments","2. Command-line Arguments","4. Lints","4.3. Lint Listing","7. Platform Support","7.4. *-apple-darwin","7.5. *-apple-ios","7.11. arm-none-eabi","8. Targets","12. Checking Conditional Configurations","14. Symbol Mangling","contributing","3. Breaking changes","6. The library team","1. How to build and run the compiler","2. Testing the compiler","2.1. Running tests","2.3. Compiletest","2.4. Integration testing","3. Debugging the compiler","4. Profiling the compiler","19. Notification groups","28. Queries: demand-driven compilation","32. Rustdoc internals","35. rustc_driver and rustc_interface","36. Syntax and the AST","37. The HIR (High-level IR)","39. The MIR (Mid-level IR)","44. Generic parameter definitions","44.2. Early vs Late bound parameters","45. The ty module: representing types","47. Parameter Environments","49. Trait solving","49.5. Chalk-based trait solving","49.6. Next-gen trait solving","50. Type checking","50.3. Opaque Types","56. The borrow checker","56.1. Tracking moves and initialization","56.4. Region inference","57. Errors and Lints","61. Constant evaluation","64. Code Generation","profile-guided-optimization","2. Lexical structure","identifiers","3. Macros","6. Items","attributes","7. Attributes","8. Statements and expressions","8.2. Expressions","10. Type system","10.1. Types","12. Names","13. Memory model","16. Unsafety","20. Appendices","1. Meet Safe and Unsafe","2. Data Layout","references","3. Ownership","lifetime-elision","subtyping","4. Type Conversions","5. Uninitialized Memory","6. Ownership Based Resource Management","destructors","7. Unwinding","concurrency","8. Concurrency","9. Implementing Vec","10. Implementing Arc and Mutex","10.1. Arc","12. Beneath std","The Unstable Book","1. Compiler flags","2. Language features","3. Library Features","3. Library Usage with build.rs","3.1. Tutorial","5. Customizing the Generated Bindings","1. Examples","2. Reference","2.17. Supported Types","2.18. #[wasm_bindgen] Attributes","2.18.1. On JavaScript Imports","2.18.2. On Rust Exports","3. web-sys","4. Testing with wasm-bindgen-test","5. Contributing to wasm-bindgen","5.2. Internal Design","5.3. js-sys","5.4. web-sys","1. Fuzzing with cargo-fuzz","2. Fuzzing with afl.rs","Platforms","Triagebot","Community","Compiler","Cross Compilation","Prioritization","Steering Meeting","crates.io","Governance","Moderation","Infrastructure","Policies","Guidelines","Documentation","Language","Release","1. What is Chalk?","3. Representing and manipulating types","3.2. Rust types","3.4. Operations","4. Lowering Rust IR to logic","5. Canonical queries","6. Chalk engine","6.2. Logic","7. Chalk recursive solver","title-page","profiling","4. Command Line Tool","4.2. build","5. Format","5.2. Configuration","5.3. Theme","7. For Developers","glossary","3. Data layout","4. Validity","5. Optimizations","2. Idioms","2.9. Foreign function interface (FFI)","3. Design Patterns","3.1. Behavioural","3.2. Creational","3.3. Structural","3.4. Foreign function interface (FFI)","4. Anti-patterns","5. Functional Programming","6. Additional Resources","2. A Bad Stack","3. An Ok Stack","4. A Persistent Stack","5. A Bad Safe Deque","6. An Ok Unsafe Queue","7. A Production Unsafe Deque","8. A Bunch of Silly Lists","1. Syntax Extensions","2. Declarative Macros","2.3. Minutiae","2.4. Patterns","2.5. Building Blocks","2.5.2. Counting","3. Procedural Macros","3.1. A Methodical Introduction","1. Floating-point Math","2. Target features","5. Performance profiling","Effective Rust","1. Types","iterators","2. Traits","lifetimes","3. Concepts","4. Dependencies","visibility","documentation","5. Tooling","6. Beyond Standard Rust","ownership","stability","Demystifying Async/Await in Rust","2. Terminology","3. Let's Build a Runtime","2. Section 1 - Hello Rust","3. Section 2 - Stretch Goals","4. Section 3 - Generating Maps","5. Section 4 - Making A Game","2. Software Assurance","3. Rust Zero-Crash Course","4. Understanding Memory Safety and Exploitation","16. Appendix","2. Using the Wasmtime CLI","3. Using the Wasmtime API","3.1. Rust","4. Further Examples","4.1. Debugging WebAssembly","4.2. Profiling WebAssembly","5. Stability","6. Security","7. Contributing","7.11. Maintainer Guidelines"];var N=N;const booksIndex=[{"name":C[0],"url":"https://doc.rust-lang.org/stable/book/","pages":[[C[0],C[852],N],["Foreword","foreword",N],[C[26],"ch00-00-introduction",N],[C[1],"ch01-00-getting-started",N],[C[31],"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 Construct","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 Library’s 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 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]]],[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. Spawning","06_multiple_futures/04_spawning",[C[23]]],[C[24],"07_workarounds/01_chapter",N],["7.1. ? in async Blocks","07_workarounds/02_err_in_async_blocks",[C[24]]],["7.2. Send Approximation","07_workarounds/03_send_approximation",[C[24]]],["7.3. Recursion","07_workarounds/04_recursion",[C[24]]],["7.4. async in Traits","07_workarounds/05_async_in_traits",[C[24]]],["8. The Async Ecosystem","08_ecosystem/00_chapter",N],[C[25],"09_example/00_intro",N],["9.1. Running Asynchronous Code","09_example/01_running_async_code",[C[25]]],["9.2. Handling Connections Concurrently","09_example/02_handling_connections_concurrently",[C[25]]],["9.3. Testing the Server","09_example/03_tests",[C[25]]],["12. Appendix: Translations of the Book","12_appendix/01_translations",N]]},{"name":"Rust Edition Guide Book","url":"https://doc.rust-lang.org/stable/edition-guide/","pages":[[C[26],C[47],N],[C[27],"editions/index",N],["1.1. Creating a new project","editions/creating-a-new-project",[C[27]]],["1.2. Transitioning an existing project to a new edition","editions/transitioning-an-existing-project-to-a-new-edition",[C[27]]],["1.3. Advanced migrations","editions/advanced-migrations",[C[27]]],["2. Rust 2015","rust-2015/index",N],[C[28],"rust-2018/index",N],["3.1. Path and module system changes","rust-2018/path-changes",[C[28]]],["3.2. Anonymous trait function parameters deprecated","rust-2018/trait-fn-parameters",[C[28]]],["3.3. New keywords","rust-2018/new-keywords",[C[28]]],["3.4. Method dispatch for raw pointers to inference variables","rust-2018/tyvar-behind-raw-pointer",[C[28]]],["3.5. Cargo changes","rust-2018/cargo",[C[28]]],[C[29],"rust-2021/index",N],["4.1. Additions to the prelude","rust-2021/prelude",[C[29]]],["4.2. Default Cargo feature resolver","rust-2021/default-cargo-resolver",[C[29]]],["4.3. IntoIterator for arrays","rust-2021/IntoIterator-for-arrays",[C[29]]],["4.4. Disjoint capture in closures","rust-2021/disjoint-capture-in-closures",[C[29]]],["4.5. Panic macro consistency","rust-2021/panic-macro-consistency",[C[29]]],["4.6. Reserving syntax","rust-2021/reserving-syntax",[C[29]]],["4.7. Warnings promoted to errors","rust-2021/warnings-promoted-to-error",[C[29]]],["4.8. Or patterns in macro-rules","rust-2021/or-patterns-macro-rules",[C[29]]],["4.9. C-string literals","rust-2021/c-string-literals",[C[29]]],[C[30],"rust-2024/index",N],["5.1. Additions to the prelude","rust-2024/prelude",[C[30]]],["5.2. Add IntoIterator for Box<[T]>","rust-2024/intoiterator-box-slice",[C[30]]],["5.3. unsafe_op_in_unsafe_fn warning","rust-2024/unsafe-op-in-unsafe-fn",[C[30]]],["5.4. RPIT lifetime capture","rust-2024/rpit-lifetime-capture",[C[30]]],["5.5. Disallow references to static mut","rust-2024/static-mut-reference",[C[30]]],["5.6. Cargo: Remove implicit features","rust-2024/cargo-remove-implicit-features",[C[30]]],["5.7. Cargo: Table and key name consistency","rust-2024/cargo-table-key-names",[C[30]]],["5.8. Cargo: Reject unused inherited default-features","rust-2024/cargo-inherited-default-features",[C[30]]],["5.9. Rustfmt: Combine all delimited exprs as last argument","rust-2024/rustfmt-overflow-delimited-expr",[C[30]]],["5.10. gen keyword","rust-2024/gen-keyword",[C[30]]],["5.11. Macro fragment specifiers","rust-2024/macro-fragment-specifiers",[C[30]]],["5.12. Never type fallback change","rust-2024/never-type-fallback",[C[30]]],["5.13. unsafe extern blocks","rust-2024/unsafe-extern",[C[30]]],["5.14. Unsafe attributes","rust-2024/unsafe-attributes",[C[30]]]]},{"name":"The Cargo Book","url":"https://doc.rust-lang.org/cargo/","pages":[[C[26],"index",N],[C[1],"getting-started/index",N],[C[31],"getting-started/installation",[C[1]]],["1.2. First Steps with Cargo","getting-started/first-steps",[C[1]]],[C[32],"guide/index",N],["2.1. Why Cargo Exists","guide/why-cargo-exists",[C[32]]],["2.2. Creating a New Package","guide/creating-a-new-project",[C[32]]],["2.3. Working on an Existing Package","guide/working-on-an-existing-project",[C[32]]],["2.4. Dependencies","guide/dependencies",[C[32]]],["2.5. Package Layout","guide/project-layout",[C[32]]],["2.6. Cargo.toml vs Cargo.lock","guide/cargo-toml-vs-cargo-lock",[C[32]]],["2.7. Tests","guide/tests",[C[32]]],["2.8. Continuous Integration","guide/continuous-integration",[C[32]]],["2.9. Cargo Home","guide/cargo-home",[C[32]]],["2.10. Build Cache","guide/build-cache",[C[32]]],[C[33],C[50],N],[C[34],"reference/specifying-dependencies",[C[33]]],["3.1.1. Overriding Dependencies","reference/overriding-dependencies",[C[33],C[34]]],[C[35],"reference/manifest",[C[33]]],["3.2.1. Cargo Targets","reference/cargo-targets",[C[33],C[35]]],["3.3. Workspaces","reference/workspaces",[C[33]]],[C[36],"reference/features",[C[33]]],["3.4.1. Features Examples","reference/features-examples",[C[33],C[36]]],["3.5. Profiles","reference/profiles",[C[33]]],["3.6. Configuration","reference/config",[C[33]]],["3.7. Environment Variables","reference/environment-variables",[C[33]]],[C[37],"reference/build-scripts",[C[33]]],["3.8.1. Build Script Examples","reference/build-script-examples",[C[33],C[37]]],["3.9. Publishing on crates.io","reference/publishing",[C[33]]],["3.10. Package ID Specifications","reference/pkgid-spec",[C[33]]],["3.11. Source Replacement","reference/source-replacement",[C[33]]],["3.12. External Tools","reference/external-tools",[C[33]]],[C[38],"reference/registries",[C[33]]],[C[39],"reference/registry-authentication",[C[33],C[38]]],["3.13.1.1. Credential Provider Protocol","reference/credential-provider-protocol",[C[33],C[38],C[39]]],[C[40],"reference/running-a-registry",[C[33],C[38]]],["3.13.2.1. Registry Index","reference/registry-index",[C[33],C[38],C[40]]],["3.13.2.2. Registry Web API","reference/registry-web-api",[C[33],C[38],C[40]]],["3.14. Dependency Resolution","reference/resolver",[C[33]]],["3.15. SemVer Compatibility","reference/semver",[C[33]]],["3.16. Future incompat report","reference/future-incompat-report",[C[33]]],["3.17. Reporting build timings","reference/timings",[C[33]]],["3.18. Lints","reference/lints",[C[33]]],["3.19. Unstable Features","reference/unstable",[C[33]]],[C[41],C[54],N],[C[42],"commands/general-commands",[C[41]]],["4.1.1. cargo","commands/cargo",[C[41],C[42]]],["4.1.2. cargo help","commands/cargo-help",[C[41],C[42]]],["4.1.3. cargo version","commands/cargo-version",[C[41],C[42]]],[C[43],"commands/build-commands",[C[41]]],["4.2.1. cargo bench","commands/cargo-bench",[C[41],C[43]]],["4.2.2. cargo build","commands/cargo-build",[C[41],C[43]]],["4.2.3. cargo check","commands/cargo-check",[C[41],C[43]]],["4.2.4. cargo clean","commands/cargo-clean",[C[41],C[43]]],["4.2.5. cargo doc","commands/cargo-doc",[C[41],C[43]]],["4.2.6. cargo fetch","commands/cargo-fetch",[C[41],C[43]]],["4.2.7. cargo fix","commands/cargo-fix",[C[41],C[43]]],["4.2.8. cargo run","commands/cargo-run",[C[41],C[43]]],["4.2.9. cargo rustc","commands/cargo-rustc",[C[41],C[43]]],["4.2.10. cargo rustdoc","commands/cargo-rustdoc",[C[41],C[43]]],["4.2.11. cargo test","commands/cargo-test",[C[41],C[43]]],["4.2.12. cargo report","commands/cargo-report",[C[41],C[43]]],[C[44],"commands/manifest-commands",[C[41]]],["4.3.1. cargo add","commands/cargo-add",[C[41],C[44]]],["4.3.2. cargo generate-lockfile","commands/cargo-generate-lockfile",[C[41],C[44]]],["4.3.3. cargo locate-project","commands/cargo-locate-project",[C[41],C[44]]],["4.3.4. cargo metadata","commands/cargo-metadata",[C[41],C[44]]],["4.3.5. cargo pkgid","commands/cargo-pkgid",[C[41],C[44]]],["4.3.6. cargo remove","commands/cargo-remove",[C[41],C[44]]],["4.3.7. cargo tree","commands/cargo-tree",[C[41],C[44]]],["4.3.8. cargo update","commands/cargo-update",[C[41],C[44]]],["4.3.9. cargo vendor","commands/cargo-vendor",[C[41],C[44]]],["4.3.10. cargo verify-project","commands/cargo-verify-project",[C[41],C[44]]],[C[45],"commands/package-commands",[C[41]]],["4.4.1. cargo init","commands/cargo-init",[C[41],C[45]]],["4.4.2. cargo install","commands/cargo-install",[C[41],C[45]]],["4.4.3. cargo new","commands/cargo-new",[C[41],C[45]]],["4.4.4. cargo search","commands/cargo-search",[C[41],C[45]]],["4.4.5. cargo uninstall","commands/cargo-uninstall",[C[41],C[45]]],[C[46],"commands/publishing-commands",[C[41]]],["4.5.1. cargo login","commands/cargo-login",[C[41],C[46]]],["4.5.2. cargo logout","commands/cargo-logout",[C[41],C[46]]],["4.5.3. cargo owner","commands/cargo-owner",[C[41],C[46]]],["4.5.4. cargo package","commands/cargo-package",[C[41],C[46]]],["4.5.5. cargo publish","commands/cargo-publish",[C[41],C[46]]],["4.5.6. cargo yank","commands/cargo-yank",[C[41],C[46]]],["5. FAQ","faq",N],["6. Appendix: Glossary",C[69],N],["7. Appendix: Git Authentication","appendix/git-authentication",N]]},{"name":"Rust and WebAssembly Book","url":"https://rustwasm.github.io/docs/book/","pages":[[C[52],C[47],N],["2. Why Rust and WebAssembly?","why-rust-and-webassembly",N],[C[48],"background-and-concepts",N],["3.1. What is WebAssembly?","what-is-webassembly",[C[48]]],[C[49],"game-of-life/introduction",N],["4.1. Setup","game-of-life/setup",[C[49]]],["4.2. Hello, World!","game-of-life/hello-world",[C[49]]],["4.3. Rules","game-of-life/rules",[C[49]]],["4.4. Implementing Life","game-of-life/implementing",[C[49]]],["4.5. Testing Life","game-of-life/testing",[C[49]]],["4.6. Debugging","game-of-life/debugging",[C[49]]],["4.7. Adding Interactivity","game-of-life/interactivity",[C[49]]],["4.8. Time Profiling","game-of-life/time-profiling",[C[49]]],["4.9. Shrinking .wasm Size","game-of-life/code-size",[C[49]]],["4.10. Publishing to npm","game-of-life/publishing-to-npm",[C[49]]],[C[51],C[50],N],["5.1. Crates You Should Know","reference/crates",[C[51]]],["5.2. Tools You Should Know","reference/tools",[C[51]]],["5.3. Project Templates","reference/project-templates",[C[51]]],["5.4. Debugging","reference/debugging",[C[51]]],["5.5. Time Profiling","reference/time-profiling",[C[51]]],["5.6. Shrinking .wasm Size","reference/code-size",[C[51]]],["5.7. JavaScript Interoperation","reference/js-ffi",[C[51]]],["5.8. Which Crates Will Work Off-the-Shelf with WebAssembly?","reference/which-crates-work-with-wasm",[C[51]]],["5.9. How to Add WebAssembly Support to a General-Purpose Crate","reference/add-wasm-support-to-crate",[C[51]]],["5.10. Deploying Rust and WebAssembly to Production","reference/deploying-to-production",[C[51]]]]},{"name":"Wasm-Pack Book","url":"https://rustwasm.github.io/docs/wasm-pack/","pages":[[C[52],C[47],N],["2. Quickstart","quickstart",N],[C[53],"prerequisites/index",N],["3.1. npm (optional)","prerequisites/npm",[C[53]]],["3.2. considerations","prerequisites/considerations",[C[53]]],["3.3. Non-rustup setups","prerequisites/non-rustup-setups",[C[53]]],[C[55],C[54],N],["4.1. new","commands/new",[C[55]]],[C[855],"commands/build",[C[55]]],["4.3. test","commands/test",[C[55]]],["4.4. pack and publish","commands/pack-and-publish",[C[55]]],["4.5. init (DEPRECATED)","commands/init",[C[55]]],[C[56],"tutorials/index",N],[C[57],"tutorials/hybrid-applications-with-webpack/index",[C[56]]],["5.1.1. Getting started","tutorials/hybrid-applications-with-webpack/getting-started",[C[56],C[57]]],["5.1.2. Using your library","tutorials/hybrid-applications-with-webpack/using-your-library",[C[56],C[57]]],[C[58],"tutorials/npm-browser-packages/index",[C[56]]],[C[59],"tutorials/npm-browser-packages/getting-started",[C[56],C[58]]],["5.2.1.1. Manual Setup","tutorials/npm-browser-packages/getting-started/manual-setup",[C[56],C[58],C[59]]],[C[60],"tutorials/npm-browser-packages/template-deep-dive/index",[C[56],C[58]]],["5.2.2.1. Cargo.toml","tutorials/npm-browser-packages/template-deep-dive/cargo-toml",[C[56],C[58],C[60]]],["5.2.2.2. src/lib.rs","tutorials/npm-browser-packages/template-deep-dive/src-lib-rs",[C[56],C[58],C[60]]],["5.2.2.3. src/utils.rs","tutorials/npm-browser-packages/template-deep-dive/src-utils-rs",[C[56],C[58],C[60]]],["5.2.2.4. wee_alloc","tutorials/npm-browser-packages/template-deep-dive/wee_alloc",[C[56],C[58],C[60]]],["5.2.2.5. tests/web.rs","tutorials/npm-browser-packages/template-deep-dive/tests-web-rs",[C[56],C[58],C[60]]],["5.2.3. Building your project","tutorials/npm-browser-packages/building-your-project",[C[56],C[58]]],["5.2.4. Testing your project","tutorials/npm-browser-packages/testing-your-project",[C[56],C[58]]],["5.2.5. Packaging and publishing","tutorials/npm-browser-packages/packaging-and-publishing",[C[56],C[58]]],["5.2.6. Using your library","tutorials/npm-browser-packages/using-your-library",[C[56],C[58]]],["6. Cargo.toml Configuration","cargo-toml-configuration",N],[C[924],C[742],N]]},{"name":"The Embedded Rust Book","url":"https://rust-embedded.github.io/book/","pages":[[C[52],"intro/index",N],["1.1. Hardware","intro/hardware",[C[52]]],["1.2. no_std","intro/no-std",[C[52]]],["1.3. Tooling","intro/tooling",[C[52]]],[C[61],"intro/install",[C[52]]],["1.4.1. Linux","intro/install/linux",[C[52],C[61]]],["1.4.2. MacOS","intro/install/macos",[C[52],C[61]]],["1.4.3. Windows","intro/install/windows",[C[52],C[61]]],["1.4.4. Verify Installation","intro/install/verify",[C[52],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],[C[65],"design-patterns/index",N],[C[66],"design-patterns/hal/index",[C[65]]],["8.1.1. Checklist","design-patterns/hal/checklist",[C[65],C[66]]],["8.1.2. Naming","design-patterns/hal/naming",[C[65],C[66]]],["8.1.3. Interoperability","design-patterns/hal/interoperability",[C[65],C[66]]],["8.1.4. Predictability","design-patterns/hal/predictability",[C[65],C[66]]],["8.1.5. GPIO","design-patterns/hal/gpio",[C[65],C[66]]],["9. Tips for embedded C developers","c-tips/index",N],[C[67],"interoperability/index",N],["10.1. A little C with your Rust","interoperability/c-with-rust",[C[67]]],["10.2. A little Rust with your C","interoperability/rust-with-c",[C[67]]],[C[68],"unsorted/index",N],["11.1. Optimizations: The speed size tradeoff","unsorted/speed-vs-size",[C[68]]],["11.2. Performing Math Functionality","unsorted/math",[C[68]]],["Appendix A: Glossary",C[69],N]]},{"name":"The Rust Cookbook","url":"https://rust-lang-nursery.github.io/rust-cookbook/","pages":[["Table of Contents","intro",N],["About","about",N],[C[70],"algorithms",N],["1.1. Generate Random Values","algorithms/randomness",[C[70]]],["1.2. Sort a Vector","algorithms/sorting",[C[70]]],[C[71],"cli",N],["2.1. Argument Parsing","cli/arguments",[C[71]]],["2.2. ANSI Terminal","cli/ansi_terminal",[C[71]]],[C[72],"compression",N],["3.1. Working with Tarballs","compression/tar",[C[72]]],[C[73],C[800],N],["4.1. Explicit Threads","concurrency/threads",[C[73]]],["4.2. Data Parallelism","concurrency/parallel",[C[73]]],[C[74],"cryptography",N],["5.1. Hashing","cryptography/hashing",[C[74]]],["5.2. Encryption","cryptography/encryption",[C[74]]],[C[75],"data_structures",N],["6.1. Bitfield","data_structures/bitfield",[C[75]]],[C[76],"database",N],["7.1. SQLite","database/sqlite",[C[76]]],["7.2. Postgres","database/postgres",[C[76]]],[C[77],"datetime",N],["8.1. Duration and Calculation","datetime/duration",[C[77]]],["8.2. Parsing and Displaying","datetime/parse",[C[77]]],[C[78],"development_tools",N],[C[79],"development_tools/debugging",[C[78]]],["9.1.1. Log Messages","development_tools/debugging/log",[C[78],C[79]]],["9.1.2. Configure Logging","development_tools/debugging/config_log",[C[78],C[79]]],["9.2. Versioning","development_tools/versioning",[C[78]]],["9.3. Build Time Tooling","development_tools/build_tools",[C[78]]],[C[80],"encoding",N],["10.1. Character Sets","encoding/strings",[C[80]]],["10.2. CSV processing","encoding/csv",[C[80]]],["10.3. Structured Data","encoding/complex",[C[80]]],[C[81],"errors",N],["11.1. Handle Error Variants","errors/handle",[C[81]]],[C[82],"file",N],["12.1. Read & Write","file/read-write",[C[82]]],["12.2. Directory Traversal","file/dir",[C[82]]],[C[83],"hardware",N],["13.1. Processor","hardware/processor",[C[83]]],[C[84],"mem",N],["14.1. Global Static","mem/global_static",[C[84]]],[C[85],"net",N],["15.1. Server","net/server",[C[85]]],[C[86],"os",N],["16.1. External Command","os/external",[C[86]]],[C[87],"science",N],[C[88],"science/mathematics",[C[87]]],["17.1.1. Linear Algebra","science/mathematics/linear_algebra",[C[87],C[88]]],["17.1.2. Trigonometry","science/mathematics/trigonometry",[C[87],C[88]]],["17.1.3. Complex Numbers","science/mathematics/complex_numbers",[C[87],C[88]]],["17.1.4. Statistics","science/mathematics/statistics",[C[87],C[88]]],["17.1.5. Miscellaneous","science/mathematics/miscellaneous",[C[87],C[88]]],[C[89],"text",N],["18.1. Regular Expressions","text/regex",[C[89]]],["18.2. String Parsing","text/string_parsing",[C[89]]],[C[90],"web",N],["19.1. Extracting Links","web/scraping",[C[90]]],["19.2. URL","web/url",[C[90]]],["19.3. Media Types","web/mime",[C[90]]],[C[91],"web/clients",[C[90]]],["19.4.1. Making Requests","web/clients/requests",[C[90],C[91]]],["19.4.2. Calling a Web API","web/clients/apis",[C[90],C[91]]],["19.4.3. Downloads","web/clients/download",[C[90],C[91]]],["19.4.4. Web Authentication","web/clients/authentication",[C[90],C[91]]]]},{"name":"Command line apps in Rust","url":"https://rust-cli.github.io/book/","pages":[["Getting started","index",N],[C[92],"tutorial/index",N],["1.1. Project setup","tutorial/setup",[C[92]]],["1.2. Parsing command line arguments","tutorial/cli-args",[C[92]]],["1.3. First implementation","tutorial/impl-draft",[C[92]]],["1.4. Nicer error reporting","tutorial/errors",[C[92]]],["1.5. Output for humans and machines","tutorial/output",[C[92]]],["1.6. Testing","tutorial/testing",[C[92]]],["1.7. Packaging and distributing a Rust tool","tutorial/packaging",[C[92]]],[C[93],"in-depth/index",N],["2.1. Signal handling","in-depth/signals",[C[93]]],["2.2. Using config files","in-depth/config-files",[C[93]]],["2.3. Exit codes","in-depth/exit-code",[C[93]]],["2.4. Communicating with humans","in-depth/human-communication",[C[93]]],["2.5. Communicating with machines","in-depth/machine-communication",[C[93]]],["2.6. Rendering documentation for your CLI apps","in-depth/docs",[C[93]]],["3. Resources","resources/index",N]]},{"name":"Rust by Example","url":"https://doc.rust-lang.org/stable/rust-by-example/","pages":[[C[26],"index",N],[C[94],"hello",N],["1.1. Comments","hello/comment",[C[94]]],[C[95],"hello/print",[C[94]]],["1.2.1. Debug","hello/print/print_debug",[C[94],C[95]]],[C[96],"hello/print/print_display",[C[94],C[95]]],["1.2.2.1. Testcase: List","hello/print/print_display/testcase_list",[C[94],C[95],C[96]]],["1.2.3. Formatting","hello/print/fmt",[C[94],C[95]]],[C[97],"primitives",N],["2.1. Literals and operators","primitives/literals",[C[97]]],["2.2. Tuples","primitives/tuples",[C[97]]],["2.3. Arrays and Slices","primitives/array",[C[97]]],[C[98],"custom_types",N],["3.1. Structures","custom_types/structs",[C[98]]],[C[99],"custom_types/enum",[C[98]]],["3.2.1. use","custom_types/enum/enum_use",[C[98],C[99]]],["3.2.2. C-like","custom_types/enum/c_like",[C[98],C[99]]],["3.2.3. Testcase: linked-list","custom_types/enum/testcase_linked_list",[C[98],C[99]]],["3.3. constants","custom_types/constants",[C[98]]],[C[100],"variable_bindings",N],["4.1. Mutability","variable_bindings/mut",[C[100]]],["4.2. Scope and Shadowing","variable_bindings/scope",[C[100]]],["4.3. Declare first","variable_bindings/declare",[C[100]]],["4.4. Freezing","variable_bindings/freeze",[C[100]]],[C[101],"types",N],["5.1. Casting","types/cast",[C[101]]],["5.2. Literals","types/literals",[C[101]]],["5.3. Inference","types/inference",[C[101]]],["5.4. Aliasing","types/alias",[C[101]]],[C[102],"conversion",N],["6.1. From and Into","conversion/from_into",[C[102]]],["6.2. TryFrom and TryInto","conversion/try_from_try_into",[C[102]]],["6.3. To and from Strings","conversion/string",[C[102]]],["7. Expressions","expression",N],[C[103],"flow_control",N],["8.1. if/else","flow_control/if_else",[C[103]]],[C[104],"flow_control/loop",[C[103]]],["8.2.1. Nesting and labels","flow_control/loop/nested",[C[103],C[104]]],["8.2.2. Returning from loops","flow_control/loop/return",[C[103],C[104]]],["8.3. while","flow_control/while",[C[103]]],["8.4. for and range","flow_control/for",[C[103]]],[C[105],"flow_control/match",[C[103]]],[C[106],"flow_control/match/destructuring",[C[103],C[105]]],["8.5.1.1. tuples","flow_control/match/destructuring/destructure_tuple",[C[103],C[105],C[106]]],["8.5.1.2. arrays/slices","flow_control/match/destructuring/destructure_slice",[C[103],C[105],C[106]]],["8.5.1.3. enums","flow_control/match/destructuring/destructure_enum",[C[103],C[105],C[106]]],["8.5.1.4. pointers/ref","flow_control/match/destructuring/destructure_pointers",[C[103],C[105],C[106]]],["8.5.1.5. structs","flow_control/match/destructuring/destructure_structures",[C[103],C[105],C[106]]],["8.5.2. Guards","flow_control/match/guard",[C[103],C[105]]],["8.5.3. Binding","flow_control/match/binding",[C[103],C[105]]],["8.6. if let","flow_control/if_let",[C[103]]],["8.7. let-else","flow_control/let_else",[C[103]]],["8.8. while let","flow_control/while_let",[C[103]]],[C[107],"fn",N],["9.1. Methods","fn/methods",[C[107]]],[C[108],"fn/closures",[C[107]]],["9.2.1. Capturing","fn/closures/capture",[C[107],C[108]]],["9.2.2. As input parameters","fn/closures/input_parameters",[C[107],C[108]]],["9.2.3. Type anonymity","fn/closures/anonymity",[C[107],C[108]]],["9.2.4. Input functions","fn/closures/input_functions",[C[107],C[108]]],["9.2.5. As output parameters","fn/closures/output_parameters",[C[107],C[108]]],[C[109],"fn/closures/closure_examples",[C[107],C[108]]],["9.2.6.1. Iterator::any","fn/closures/closure_examples/iter_any",[C[107],C[108],C[109]]],["9.2.6.2. Searching through iterators","fn/closures/closure_examples/iter_find",[C[107],C[108],C[109]]],["9.3. Higher Order Functions","fn/hof",[C[107]]],["9.4. Diverging functions","fn/diverging",[C[107]]],[C[110],"mod",N],["10.1. Visibility","mod/visibility",[C[110]]],["10.2. Struct visibility","mod/struct_visibility",[C[110]]],["10.3. The use declaration","mod/use",[C[110]]],["10.4. super and self","mod/super",[C[110]]],["10.5. File hierarchy","mod/split",[C[110]]],[C[111],"crates",N],["11.1. Creating a Library","crates/lib",[C[111]]],["11.2. Using a Library","crates/using_lib",[C[111]]],[C[112],"cargo",N],["12.1. Dependencies","cargo/deps",[C[112]]],["12.2. Conventions","cargo/conventions",[C[112]]],["12.3. Tests","cargo/test",[C[112]]],["12.4. Build Scripts","cargo/build_scripts",[C[112]]],[C[113],"attribute",N],["13.1. dead_code","attribute/unused",[C[113]]],["13.2. Crates","attribute/crate",[C[113]]],[C[114],"attribute/cfg",[C[113]]],["13.3.1. Custom","attribute/cfg/custom",[C[113],C[114]]],[C[115],"generics",N],["14.1. Functions","generics/gen_fn",[C[115]]],["14.2. Implementation","generics/impl",[C[115]]],["14.3. Traits","generics/gen_trait",[C[115]]],[C[116],"generics/bounds",[C[115]]],["14.4.1. Testcase: empty bounds","generics/bounds/testcase_empty",[C[115],C[116]]],["14.5. Multiple bounds","generics/multi_bounds",[C[115]]],["14.6. Where clauses","generics/where",[C[115]]],["14.7. New Type Idiom","generics/new_types",[C[115]]],[C[117],"generics/assoc_items",[C[115]]],["14.8.1. The Problem","generics/assoc_items/the_problem",[C[115],C[117]]],["14.8.2. Associated types","generics/assoc_items/types",[C[115],C[117]]],[C[118],"generics/phantom",[C[115]]],["14.9.1. Testcase: unit clarification","generics/phantom/testcase_units",[C[115],C[118]]],[C[119],"scope",N],["15.1. RAII","scope/raii",[C[119]]],[C[120],"scope/move",[C[119]]],["15.2.1. Mutability","scope/move/mut",[C[119],C[120]]],["15.2.2. Partial moves","scope/move/partial_move",[C[119],C[120]]],[C[121],"scope/borrow",[C[119]]],["15.3.1. Mutability","scope/borrow/mut",[C[119],C[121]]],["15.3.2. Aliasing","scope/borrow/alias",[C[119],C[121]]],["15.3.3. The ref pattern","scope/borrow/ref",[C[119],C[121]]],[C[122],"scope/lifetime",[C[119]]],["15.4.1. Explicit annotation","scope/lifetime/explicit",[C[119],C[122]]],["15.4.2. Functions","scope/lifetime/fn",[C[119],C[122]]],["15.4.3. Methods","scope/lifetime/methods",[C[119],C[122]]],["15.4.4. Structs","scope/lifetime/struct",[C[119],C[122]]],["15.4.5. Traits","scope/lifetime/trait",[C[119],C[122]]],["15.4.6. Bounds","scope/lifetime/lifetime_bounds",[C[119],C[122]]],["15.4.7. Coercion","scope/lifetime/lifetime_coercion",[C[119],C[122]]],["15.4.8. Static","scope/lifetime/static_lifetime",[C[119],C[122]]],["15.4.9. Elision","scope/lifetime/elision",[C[119],C[122]]],[C[123],"trait",N],["16.1. Derive","trait/derive",[C[123]]],["16.2. Returning Traits with dyn","trait/dyn",[C[123]]],["16.3. Operator Overloading","trait/ops",[C[123]]],["16.4. Drop","trait/drop",[C[123]]],["16.5. Iterators","trait/iter",[C[123]]],["16.6. impl Trait","trait/impl_trait",[C[123]]],["16.7. Clone","trait/clone",[C[123]]],["16.8. Supertraits","trait/supertraits",[C[123]]],["16.9. Disambiguating overlapping traits","trait/disambiguating",[C[123]]],[C[124],"macros",N],[C[125],"macros/syntax",[C[124]]],["17.1.1. Designators","macros/designators",[C[124],C[125]]],["17.1.2. Overload","macros/overload",[C[124],C[125]]],["17.1.3. Repeat","macros/repeat",[C[124],C[125]]],["17.2. DRY (Don't Repeat Yourself)","macros/dry",[C[124]]],["17.3. DSL (Domain Specific Languages)","macros/dsl",[C[124]]],["17.4. Variadics","macros/variadics",[C[124]]],[C[126],"error",N],["18.1. panic","error/panic",[C[126]]],["18.2. abort & unwind","error/abort_unwind",[C[126]]],[C[127],"error/option_unwrap",[C[126]]],["18.3.1. Unpacking options with ?","error/option_unwrap/question_mark",[C[126],C[127]]],["18.3.2. Combinators: map","error/option_unwrap/map",[C[126],C[127]]],["18.3.3. Combinators: and_then","error/option_unwrap/and_then",[C[126],C[127]]],["18.3.4. Defaults: or, or_else, get_or_insert, get_or_insert_with","error/option_unwrap/defaults",[C[126],C[127]]],[C[128],"error/result",[C[126]]],["18.4.1. map for Result","error/result/result_map",[C[126],C[128]]],["18.4.2. aliases for Result","error/result/result_alias",[C[126],C[128]]],["18.4.3. Early returns","error/result/early_returns",[C[126],C[128]]],["18.4.4. Introducing ?","error/result/enter_question_mark",[C[126],C[128]]],[C[129],"error/multiple_error_types",[C[126]]],["18.5.1. Pulling Results out of Options","error/multiple_error_types/option_result",[C[126],C[129]]],["18.5.2. Defining an error type","error/multiple_error_types/define_error_type",[C[126],C[129]]],["18.5.3. Boxing errors","error/multiple_error_types/boxing_errors",[C[126],C[129]]],["18.5.4. Other uses of ?","error/multiple_error_types/reenter_question_mark",[C[126],C[129]]],["18.5.5. Wrapping errors","error/multiple_error_types/wrap_error",[C[126],C[129]]],["18.6. Iterating over Results","error/iter_result",[C[126]]],[C[130],"std",N],["19.1. Box, stack and heap","std/box",[C[130]]],["19.2. Vectors","std/vec",[C[130]]],["19.3. Strings","std/str",[C[130]]],["19.4. Option","std/option",[C[130]]],[C[131],"std/result",[C[130]]],["19.5.1. ?","std/result/question_mark",[C[130],C[131]]],["19.6. panic!","std/panic",[C[130]]],[C[132],"std/hash",[C[130]]],["19.7.1. Alternate/custom key types","std/hash/alt_key_types",[C[130],C[132]]],["19.7.2. HashSet","std/hash/hashset",[C[130],C[132]]],["19.8. Rc","std/rc",[C[130]]],["19.9. Arc","std/arc",[C[130]]],[C[133],"std_misc",N],[C[134],"std_misc/threads",[C[133]]],["20.1.1. Testcase: map-reduce","std_misc/threads/testcase_mapreduce",[C[133],C[134]]],["20.2. Channels","std_misc/channels",[C[133]]],["20.3. Path","std_misc/path",[C[133]]],[C[135],"std_misc/file",[C[133]]],["20.4.1. open","std_misc/file/open",[C[133],C[135]]],["20.4.2. create","std_misc/file/create",[C[133],C[135]]],["20.4.3. read_lines","std_misc/file/read_lines",[C[133],C[135]]],[C[136],"std_misc/process",[C[133]]],["20.5.1. Pipes","std_misc/process/pipe",[C[133],C[136]]],["20.5.2. Wait","std_misc/process/wait",[C[133],C[136]]],["20.6. Filesystem Operations","std_misc/fs",[C[133]]],[C[137],"std_misc/arg",[C[133]]],["20.7.1. Argument parsing","std_misc/arg/matching",[C[133],C[137]]],["20.8. Foreign Function Interface","std_misc/ffi",[C[133]]],[C[138],"testing",N],["21.1. Unit testing","testing/unit_testing",[C[138]]],["21.2. Documentation testing","testing/doc_testing",[C[138]]],["21.3. Integration testing","testing/integration_testing",[C[138]]],["21.4. Dev-dependencies","testing/dev_dependencies",[C[138]]],[C[139],"unsafe",N],["22.1. Inline assembly","unsafe/asm",[C[139]]],[C[140],"compatibility",N],["23.1. Raw identifiers","compatibility/raw_identifiers",[C[140]]],[C[141],"meta",N],["24.1. Documentation","meta/doc",[C[141]]],["24.2. Playground","meta/playground",[C[141]]]]},{"name":"Rust RFC","url":"https://rust-lang.github.io/rfcs/","pages":[[C[26],C[47],N],["Guidelines for compiler changes","compiler_changes",N],["Guidelines for language changes","lang_changes",N],["Guidelines for library changes","libs_changes",N],[C[142],C[142],N],[C[143],C[143],N],[C[144],C[144],N],[C[145],C[145],N],[C[146],C[146],N],[C[147],C[147],N],[C[148],C[148],N],[C[149],C[149],N],[C[150],C[150],N],[C[151],C[151],N],[C[152],C[152],N],[C[153],C[153],N],[C[154],C[154],N],[C[155],C[155],N],[C[156],C[156],N],[C[157],C[157],N],[C[158],C[158],N],[C[159],C[159],N],[C[160],C[160],N],[C[161],C[161],N],[C[162],C[162],N],[C[163],C[163],N],[C[164],C[164],N],[C[165],C[165],N],[C[166],C[166],N],[C[167],C[167],N],[C[168],C[168],N],[C[169],C[169],N],[C[170],C[170],N],[C[171],C[171],N],[C[172],C[172],N],[C[173],C[173],N],[C[174],C[174],N],[C[175],C[175],N],[C[176],C[176],N],[C[177],C[177],N],[C[178],C[178],N],[C[179],C[179],N],[C[180],C[180],N],[C[181],C[181],N],[C[182],C[182],N],[C[183],C[183],N],[C[184],C[184],N],[C[185],C[185],N],[C[186],C[186],N],[C[187],C[187],N],[C[188],C[188],N],[C[189],C[189],N],["0168-mod","0168-mod",N],[C[190],C[190],N],[C[191],C[191],N],[C[192],C[192],N],[C[193],C[193],N],[C[194],C[194],N],[C[195],C[195],N],[C[196],C[196],N],[C[197],C[197],N],[C[198],C[198],N],[C[199],C[199],N],[C[200],C[200],N],[C[201],C[201],N],[C[202],C[202],N],[C[203],C[203],N],[C[204],C[204],N],[C[205],C[205],N],[C[206],C[206],N],[C[207],C[207],N],[C[208],C[208],N],[C[209],C[209],N],[C[210],C[210],N],[C[211],C[211],N],[C[212],C[212],N],[C[213],C[213],N],[C[214],C[214],N],[C[215],C[215],N],[C[216],C[216],N],[C[217],C[217],N],[C[218],C[218],N],[C[219],C[219],N],[C[220],C[220],N],[C[221],C[221],N],[C[222],C[222],N],[C[223],C[223],N],[C[224],C[224],N],[C[225],C[225],N],[C[226],C[226],N],[C[227],C[227],N],[C[228],C[228],N],[C[229],C[229],N],[C[230],C[230],N],[C[231],C[231],N],[C[232],C[232],N],[C[233],C[233],N],[C[234],C[234],N],[C[235],C[235],N],[C[236],C[236],N],[C[237],C[237],N],[C[238],C[238],N],[C[239],C[239],N],[C[240],C[240],N],[C[241],C[241],N],[C[242],C[242],N],[C[243],C[243],N],[C[244],C[244],N],[C[245],C[245],N],[C[246],C[246],N],[C[247],C[247],N],[C[248],C[248],N],[C[249],C[249],N],[C[250],C[250],N],[C[251],C[251],N],[C[252],C[252],N],[C[253],C[253],N],[C[254],C[254],N],[C[255],C[255],N],[C[256],C[256],N],[C[257],C[257],N],[C[258],C[258],N],[C[259],C[259],N],[C[260],C[260],N],[C[261],C[261],N],[C[262],C[262],N],[C[263],C[263],N],[C[264],C[264],N],[C[265],C[265],N],[C[266],C[266],N],[C[267],C[267],N],[C[268],C[268],N],[C[269],C[269],N],[C[270],C[270],N],[C[271],C[271],N],[C[272],C[272],N],[C[273],C[273],N],[C[274],C[274],N],[C[275],C[275],N],[C[276],C[276],N],[C[277],C[277],N],[C[278],C[278],N],[C[279],C[279],N],[C[280],C[280],N],[C[281],C[281],N],[C[282],C[282],N],[C[283],C[283],N],[C[284],C[284],N],[C[285],C[285],N],[C[286],C[286],N],[C[287],C[287],N],[C[288],C[288],N],[C[289],C[289],N],[C[290],C[290],N],[C[291],C[291],N],[C[292],C[292],N],[C[293],C[293],N],[C[294],C[294],N],[C[295],C[295],N],[C[296],C[296],N],[C[297],C[297],N],[C[298],C[298],N],[C[299],C[299],N],[C[300],C[300],N],[C[301],C[301],N],[C[302],C[302],N],[C[303],C[303],N],[C[304],C[304],N],[C[305],C[305],N],[C[306],C[306],N],[C[307],C[307],N],[C[308],C[308],N],[C[309],C[309],N],[C[310],C[310],N],[C[311],C[311],N],[C[312],C[312],N],[C[313],C[313],N],[C[314],C[314],N],[C[315],C[315],N],[C[316],C[316],N],[C[317],C[317],N],[C[318],C[318],N],[C[319],C[319],N],[C[320],C[320],N],[C[321],C[321],N],[C[322],C[322],N],[C[323],C[323],N],[C[324],C[324],N],[C[325],C[325],N],[C[326],C[326],N],[C[327],C[327],N],[C[328],C[328],N],[C[329],C[329],N],[C[330],C[330],N],[C[331],C[331],N],[C[332],C[332],N],[C[333],C[333],N],[C[334],C[334],N],[C[335],C[335],N],[C[336],C[336],N],["1191-hir","1191-hir",N],[C[337],C[337],N],[C[338],C[338],N],[C[339],C[339],N],[C[340],C[340],N],[C[341],C[341],N],[C[342],C[342],N],[C[343],C[343],N],["1211-mir","1211-mir",N],[C[344],C[344],N],[C[345],C[345],N],[C[346],C[346],N],[C[347],C[347],N],[C[348],C[348],N],[C[349],C[349],N],[C[350],C[350],N],[C[351],C[351],N],[C[352],C[352],N],[C[353],C[353],N],[C[354],C[354],N],[C[355],C[355],N],[C[356],C[356],N],[C[357],C[357],N],[C[358],C[358],N],[C[359],C[359],N],[C[360],C[360],N],[C[361],C[361],N],[C[362],C[362],N],[C[363],C[363],N],[C[364],C[364],N],["1317-ide","1317-ide",N],[C[365],C[365],N],[C[366],C[366],N],[C[367],C[367],N],[C[368],C[368],N],[C[369],C[369],N],[C[370],C[370],N],[C[371],C[371],N],[C[372],C[372],N],[C[373],C[373],N],[C[374],C[374],N],[C[375],C[375],N],[C[376],C[376],N],[C[377],C[377],N],[C[378],C[378],N],[C[379],C[379],N],[C[380],C[380],N],[C[381],C[381],N],[C[382],C[382],N],[C[383],C[383],N],[C[384],C[384],N],[C[385],C[385],N],[C[386],C[386],N],[C[387],C[387],N],[C[388],C[388],N],[C[389],C[389],N],[C[390],C[390],N],[C[391],C[391],N],[C[392],C[392],N],[C[393],C[393],N],[C[394],C[394],N],[C[395],C[395],N],[C[396],C[396],N],[C[397],C[397],N],[C[398],C[398],N],[C[399],C[399],N],[C[400],C[400],N],[C[401],C[401],N],[C[402],C[402],N],[C[403],C[403],N],[C[404],C[404],N],[C[405],C[405],N],[C[406],C[406],N],[C[407],C[407],N],[C[408],C[408],N],[C[409],C[409],N],[C[410],C[410],N],[C[411],C[411],N],[C[412],C[412],N],[C[413],C[413],N],[C[414],C[414],N],[C[415],C[415],N],[C[416],C[416],N],[C[417],C[417],N],[C[418],C[418],N],[C[419],C[419],N],[C[420],C[420],N],[C[421],C[421],N],[C[422],C[422],N],[C[423],C[423],N],[C[424],C[424],N],[C[425],C[425],N],[C[426],C[426],N],[C[427],C[427],N],[C[428],C[428],N],[C[429],C[429],N],[C[430],C[430],N],[C[431],C[431],N],[C[432],C[432],N],[C[433],C[433],N],[C[434],C[434],N],[C[435],C[435],N],[C[436],C[436],N],[C[437],C[437],N],[C[438],C[438],N],[C[439],C[439],N],[C[440],C[440],N],[C[441],C[441],N],[C[442],C[442],N],[C[443],C[443],N],[C[444],C[444],N],[C[445],C[445],N],[C[446],C[446],N],[C[447],C[447],N],[C[448],C[448],N],[C[449],C[449],N],[C[450],C[450],N],[C[451],C[451],N],[C[452],C[452],N],[C[453],C[453],N],[C[454],C[454],N],[C[455],C[455],N],[C[456],C[456],N],[C[457],C[457],N],[C[458],C[458],N],[C[459],C[459],N],[C[460],C[460],N],[C[461],C[461],N],[C[462],C[462],N],[C[463],C[463],N],[C[464],C[464],N],[C[465],C[465],N],[C[466],C[466],N],[C[467],C[467],N],[C[468],C[468],N],[C[469],C[469],N],[C[470],C[470],N],[C[471],C[471],N],[C[472],C[472],N],[C[473],C[473],N],[C[474],C[474],N],[C[475],C[475],N],[C[476],C[476],N],[C[477],C[477],N],[C[478],C[478],N],[C[479],C[479],N],[C[480],C[480],N],[C[481],C[481],N],[C[482],C[482],N],[C[483],C[483],N],[C[484],C[484],N],[C[485],C[485],N],[C[486],C[486],N],[C[487],C[487],N],[C[488],C[488],N],[C[489],C[489],N],[C[490],C[490],N],[C[491],C[491],N],["2094-nll","2094-nll",N],[C[492],C[492],N],[C[493],C[493],N],[C[494],C[494],N],[C[495],C[495],N],[C[496],C[496],N],[C[497],C[497],N],[C[498],C[498],N],[C[499],C[499],N],[C[500],C[500],N],[C[501],C[501],N],[C[502],C[502],N],[C[503],C[503],N],[C[504],C[504],N],[C[505],C[505],N],[C[506],C[506],N],[C[507],C[507],N],[C[508],C[508],N],[C[509],C[509],N],[C[510],C[510],N],[C[511],C[511],N],[C[512],C[512],N],[C[513],C[513],N],[C[514],C[514],N],[C[515],C[515],N],[C[516],C[516],N],[C[517],C[517],N],[C[518],C[518],N],[C[519],C[519],N],[C[520],C[520],N],[C[521],C[521],N],[C[522],C[522],N],[C[523],C[523],N],[C[524],C[524],N],[C[525],C[525],N],[C[526],C[526],N],[C[527],C[527],N],[C[528],C[528],N],[C[529],C[529],N],[C[530],C[530],N],[C[531],C[531],N],[C[532],C[532],N],[C[533],C[533],N],[C[534],C[534],N],[C[535],C[535],N],[C[536],C[536],N],[C[537],C[537],N],["2349-pin","2349-pin",N],[C[538],C[538],N],[C[539],C[539],N],[C[540],C[540],N],[C[541],C[541],N],[C[542],C[542],N],[C[543],C[543],N],[C[544],C[544],N],[C[545],C[545],N],[C[546],C[546],N],[C[547],C[547],N],[C[548],C[548],N],[C[549],C[549],N],[C[550],C[550],N],[C[551],C[551],N],[C[552],C[552],N],[C[553],C[553],N],[C[554],C[554],N],[C[555],C[555],N],[C[556],C[556],N],[C[557],C[557],N],[C[558],C[558],N],[C[559],C[559],N],[C[560],C[560],N],[C[561],C[561],N],[C[562],C[562],N],[C[563],C[563],N],[C[564],C[564],N],[C[565],C[565],N],[C[566],C[566],N],[C[567],C[567],N],[C[568],C[568],N],[C[569],C[569],N],[C[570],C[570],N],[C[571],C[571],N],[C[572],C[572],N],[C[573],C[573],N],[C[574],C[574],N],[C[575],C[575],N],[C[576],C[576],N],[C[577],C[577],N],[C[578],C[578],N],[C[579],C[579],N],[C[580],C[580],N],[C[581],C[581],N],[C[582],C[582],N],[C[583],C[583],N],[C[584],C[584],N],[C[585],C[585],N],[C[586],C[586],N],[C[587],C[587],N],[C[588],C[588],N],[C[589],C[589],N],[C[590],C[590],N],[C[591],C[591],N],[C[592],C[592],N],[C[593],C[593],N],[C[594],C[594],N],[C[595],C[595],N],[C[596],C[596],N],[C[597],C[597],N],[C[598],C[598],N],[C[599],C[599],N],[C[600],C[600],N],[C[601],C[601],N],[C[602],C[602],N],[C[603],C[603],N],[C[604],C[604],N],[C[605],C[605],N],[C[606],C[606],N],[C[607],C[607],N],[C[608],C[608],N],[C[609],C[609],N],[C[610],C[610],N],[C[611],C[611],N],[C[612],C[612],N],[C[613],C[613],N],[C[614],C[614],N],[C[615],C[615],N],[C[616],C[616],N],[C[617],C[617],N],[C[618],C[618],N],[C[619],C[619],N],[C[620],C[620],N],[C[621],C[621],N],[C[622],C[622],N],[C[623],C[623],N],[C[624],C[624],N],[C[625],C[625],N],[C[626],C[626],N],[C[627],C[627],N],[C[628],C[628],N],[C[629],C[629],N],[C[630],C[630],N],[C[631],C[631],N],[C[632],C[632],N],[C[633],C[633],N],[C[634],C[634],N],[C[635],C[635],N],[C[636],C[636],N],[C[637],C[637],N],[C[638],C[638],N],[C[639],C[639],N],[C[640],C[640],N],[C[641],C[641],N],[C[642],C[642],N],[C[643],C[643],N],[C[644],C[644],N],[C[645],C[645],N],[C[646],C[646],N],[C[647],C[647],N],[C[648],C[648],N],[C[649],C[649],N],[C[650],C[650],N],[C[651],C[651],N],[C[652],C[652],N],[C[653],C[653],N],[C[654],C[654],N],[C[655],C[655],N],[C[656],C[656],N],[C[657],C[657],N],[C[658],C[658],N],[C[659],C[659],N],[C[660],C[660],N],[C[661],C[661],N],[C[662],C[662],N],[C[663],C[663],N],[C[664],C[664],N],[C[665],C[665],N],[C[666],C[666],N],[C[667],C[667],N],[C[668],C[668],N],[C[669],C[669],N],[C[670],C[670],N],[C[671],C[671],N],[C[672],C[672],N],[C[673],C[673],N],[C[674],C[674],N],[C[675],C[675],N],[C[676],C[676],N],[C[677],C[677],N],[C[678],C[678],N],[C[679],C[679],N],[C[680],C[680],N],[C[681],C[681],N],[C[682],C[682],N],[C[683],C[683],N],["Leadership-Council-RFCja","3392-leadership-council/Leadership-Council-RFCja",[C[683]]],["Leadership-Council-RFCko","3392-leadership-council/Leadership-Council-RFCko",[C[683]]],["Leadership-Council-RFCru-RU","3392-leadership-council/Leadership-Council-RFCru-RU",[C[683]]],["Leadership-Council-RFCzh-Hans","3392-leadership-council/Leadership-Council-RFCzh-Hans",[C[683]]],["Leadership-Council-RFCzh-Hant","3392-leadership-council/Leadership-Council-RFCzh-Hant",[C[683]]],["alternatives","3392-leadership-council/alternatives",[C[683]]],["initial-work-of-the-council","3392-leadership-council/initial-work-of-the-council",[C[683]]],["motivation","3392-leadership-council/motivation",[C[683]]],["non-goals","3392-leadership-council/non-goals",[C[683]]],[C[684],C[684],N],[C[685],C[685],N],[C[686],C[686],N],[C[687],C[687],N],[C[688],C[688],N],[C[689],C[689],N],[C[690],C[690],N],[C[691],C[691],N],[C[692],C[692],N],[C[693],C[693],N],[C[694],C[694],N],[C[695],C[695],N],[C[696],C[696],N],[C[697],C[697],N],[C[698],C[698],N],[C[699],C[699],N],[C[700],C[700],N],[C[701],C[701],N],[C[702],C[702],N],[C[703],C[703],N],[C[704],C[704],N],[C[705],C[705],N],[C[706],C[706],N],[C[707],C[707],N],[C[708],C[708],N],[C[709],C[709],N],[C[710],C[710],N],[C[711],C[711],N],[C[712],C[712],N],[C[713],C[713],N],[C[714],C[714],N],[C[715],C[715],N],[C[716],C[716],N],[C[717],C[717],N],[C[718],C[718],N],[C[719],C[719],N],[C[720],C[720],N],[C[721],C[721],N],[C[722],C[722],N],[C[723],C[723],N],[C[724],C[724],N],[C[725],C[725],N],[C[726],C[726],N],[C[727],C[727],N],[C[728],C[728],N]]},{"name":"The Rust Doc Book","url":"https://doc.rust-lang.org/rustdoc/","pages":[["1. What is rustdoc?","what-is-rustdoc",N],["2. Command-line arguments",C[731],N],[C[729],"how-to-read-rustdoc",N],["3.1. In-doc settings","read-documentation/in-doc-settings",[C[729]]],["3.2. Search","read-documentation/search",[C[729]]],[C[730],"how-to-write-documentation",N],["4.1. What to include (and exclude)","write-documentation/what-to-include",[C[730]]],["4.2. The #[doc] attribute","write-documentation/the-doc-attribute",[C[730]]],["4.3. Re-exports","write-documentation/re-exports",[C[730]]],["4.4. Linking to items by name","write-documentation/linking-to-items-by-name",[C[730]]],["4.5. Documentation tests","write-documentation/documentation-tests",[C[730]]],["5. Rustdoc-specific lints","lints",N],["6. Scraped examples","scraped-examples",N],["7. Advanced features","advanced-features",N],["8. Unstable features","unstable-features",N],["9. Deprecated features","deprecated-features",N],["10. References",C[791],N]]},{"name":"The rustc Book","url":"https://doc.rust-lang.org/rustc/","pages":[["1. What is rustc?","what-is-rustc",N],[C[732],C[731],N],["2.1. Codegen Options","codegen-options/index",[C[732]]],["3. Jobserver","jobserver",N],[C[733],"lints/index",N],["4.1. Lint Levels","lints/levels",[C[733]]],["4.2. Lint Groups","lints/groups",[C[733]]],[C[734],"lints/listing/index",[C[733]]],["4.3.1. Allowed-by-default Lints","lints/listing/allowed-by-default",[C[733],C[734]]],["4.3.2. Warn-by-default Lints","lints/listing/warn-by-default",[C[733],C[734]]],["4.3.3. Deny-by-default Lints","lints/listing/deny-by-default",[C[733],C[734]]],["5. JSON Output","json",N],["6. Tests","tests/index",N],[C[735],"platform-support",N],["7.1. Target Tier Policy","target-tier-policy",[C[735]]],["7.2. Template for Target-specific Documentation","platform-support/TEMPLATE",[C[735]]],["7.3. arm64ec-pc-windows-msvc","platform-support/arm64ec-pc-windows-msvc",[C[735]]],[C[736],"platform-support/apple-darwin",[C[735]]],["7.4.1. i686-apple-darwin","platform-support/i686-apple-darwin",[C[735],C[736]]],["7.4.2. x86_64h-apple-darwin","platform-support/x86_64h-apple-darwin",[C[735],C[736]]],["7.4.3. arm64e-apple-darwin","platform-support/arm64e-apple-darwin",[C[735],C[736]]],[C[737],"platform-support/apple-ios",[C[735]]],["7.5.1. *-apple-ios-macabi","platform-support/apple-ios-macabi",[C[735],C[737]]],["7.5.2. arm64e-apple-ios","platform-support/arm64e-apple-ios",[C[735],C[737]]],["7.6. *-apple-tvos","platform-support/apple-tvos",[C[735]]],["7.7. *-apple-watchos","platform-support/apple-watchos",[C[735]]],["7.8. *-apple-visionos","platform-support/apple-visionos",[C[735]]],["7.9. aarch64-nintendo-switch-freestanding","platform-support/aarch64-nintendo-switch-freestanding",[C[735]]],["7.10. armeb-unknown-linux-gnueabi","platform-support/armeb-unknown-linux-gnueabi",[C[735]]],[C[738],"platform-support/arm-none-eabi",[C[735]]],["7.11.1. armv4t-none-eabi","platform-support/armv4t-none-eabi",[C[735],C[738]]],["7.11.2. armv5te-none-eabi","platform-support/armv5te-none-eabi",[C[735],C[738]]],["7.11.3. armv7r-none-eabi","platform-support/armv7r-none-eabi",[C[735],C[738]]],["7.11.4. armv8r-none-eabihf","platform-support/armv8r-none-eabihf",[C[735],C[738]]],["7.11.5. thumbv6m-none-eabi","platform-support/thumbv6m-none-eabi",[C[735],C[738]]],["7.11.6. thumbv7em-none-eabi*","platform-support/thumbv7em-none-eabi",[C[735],C[738]]],["7.11.7. thumbv7m-none-eabi","platform-support/thumbv7m-none-eabi",[C[735],C[738]]],["7.11.8. thumbv8m.base-none-eabi","platform-support/thumbv8m.base-none-eabi",[C[735],C[738]]],["7.11.9. thumbv8m.main-none-eabi*","platform-support/thumbv8m.main-none-eabi",[C[735],C[738]]],["7.12. armv6k-nintendo-3ds","platform-support/armv6k-nintendo-3ds",[C[735]]],["7.13. armv7-sony-vita-newlibeabihf","platform-support/armv7-sony-vita-newlibeabihf",[C[735]]],["7.14. armv7-unknown-linux-uclibceabi","platform-support/armv7-unknown-linux-uclibceabi",[C[735]]],["7.15. armv7-unknown-linux-uclibceabihf","platform-support/armv7-unknown-linux-uclibceabihf",[C[735]]],["7.16. *-android and *-androideabi","platform-support/android",[C[735]]],["7.17. *-linux-ohos","platform-support/openharmony",[C[735]]],["7.18. *-hurd-gnu","platform-support/hurd",[C[735]]],["7.19. aarch64-unknown-teeos","platform-support/aarch64-unknown-teeos",[C[735]]],["7.20. *-espidf","platform-support/esp-idf",[C[735]]],["7.21. *-unknown-fuchsia","platform-support/fuchsia",[C[735]]],["7.22. *-kmc-solid_*","platform-support/kmc-solid",[C[735]]],["7.23. csky-unknown-linux-gnuabiv2*","platform-support/csky-unknown-linux-gnuabiv2",[C[735]]],["7.24. hexagon-unknown-linux-musl","platform-support/hexagon-unknown-linux-musl",[C[735]]],["7.25. hexagon-unknown-none-elf","platform-support/hexagon-unknown-none-elf",[C[735]]],["7.26. loongarch*-unknown-linux-*","platform-support/loongarch-linux",[C[735]]],["7.27. loongarch*-unknown-none*","platform-support/loongarch-none",[C[735]]],["7.28. m68k-unknown-linux-gnu","platform-support/m68k-unknown-linux-gnu",[C[735]]],["7.29. mips64-openwrt-linux-musl","platform-support/mips64-openwrt-linux-musl",[C[735]]],["7.30. mipsel-sony-psx","platform-support/mipsel-sony-psx",[C[735]]],["7.31. mipsisa*r6*-unknown-linux-gnu*","platform-support/mips-release-6",[C[735]]],["7.32. nvptx64-nvidia-cuda","platform-support/nvptx64-nvidia-cuda",[C[735]]],["7.33. powerpc-unknown-openbsd","platform-support/powerpc-unknown-openbsd",[C[735]]],["7.34. powerpc64-ibm-aix","platform-support/aix",[C[735]]],["7.35. riscv32im-risc0-zkvm-elf","platform-support/riscv32im-risc0-zkvm-elf",[C[735]]],["7.36. riscv32imac-unknown-xous-elf","platform-support/riscv32imac-unknown-xous-elf",[C[735]]],["7.37. riscv32*-unknown-none-elf","platform-support/riscv32-unknown-none-elf",[C[735]]],["7.38. sparc-unknown-none-elf","platform-support/sparc-unknown-none-elf",[C[735]]],["7.39. *-pc-windows-gnullvm","platform-support/pc-windows-gnullvm",[C[735]]],["7.40. *-nto-qnx-*","platform-support/nto-qnx",[C[735]]],["7.41. *-unikraft-linux-musl","platform-support/unikraft-linux-musl",[C[735]]],["7.42. *-unknown-hermit","platform-support/hermit",[C[735]]],["7.43. *-unknown-netbsd*","platform-support/netbsd",[C[735]]],["7.44. *-unknown-openbsd","platform-support/openbsd",[C[735]]],["7.45. *-unknown-redox","platform-support/redox",[C[735]]],["7.46. *-unknown-uefi","platform-support/unknown-uefi",[C[735]]],["7.47. wasm32-wasip1","platform-support/wasm32-wasip1",[C[735]]],["7.48. wasm32-wasip1-threads","platform-support/wasm32-wasip1-threads",[C[735]]],["7.49. wasm32-wasip2","platform-support/wasm32-wasip2",[C[735]]],["7.50. wasm64-unknown-unknown","platform-support/wasm64-unknown-unknown",[C[735]]],["7.51. *-win7-windows-msvc","platform-support/win7-windows-msvc",[C[735]]],["7.52. x86_64-fortanix-unknown-sgx","platform-support/x86_64-fortanix-unknown-sgx",[C[735]]],["7.53. x86_64-unknown-linux-none.md","platform-support/x86_64-unknown-linux-none",[C[735]]],["7.54. x86_64-unknown-none","platform-support/x86_64-unknown-none",[C[735]]],["7.55. xtensa-*-none-elf","platform-support/xtensa",[C[735]]],[C[739],"targets/index",N],["8.1. Built-in Targets","targets/built-in",[C[739]]],["8.2. Custom Targets","targets/custom",[C[739]]],["8.3. Known Issues","targets/known-issues",[C[739]]],["9. Profile-guided Optimization",C[774],N],["10. Instrumentation-based Code Coverage","instrument-coverage",N],["11. Linker-plugin-based LTO","linker-plugin-lto",N],[C[740],"check-cfg",N],["12.1. Cargo Specifics","check-cfg/cargo-specifics",[C[740]]],["13. Exploit Mitigations","exploit-mitigations",N],[C[741],"symbol-mangling/index",N],["14.1. v0 Symbol Format","symbol-mangling/v0",[C[741]]],["15. Contributing to rustc",C[742],N]]},{"name":"Standard library developers Guide","url":"https://std-dev-guide.rust-lang.org/","pages":[["1. About this Guide","about",N],[C[743],"breaking-changes/summary",N],["3.1. New trait implementations","breaking-changes/new-trait-impls",[C[743]]],["3.2. Prelude","breaking-changes/prelude",[C[743]]],["3.3. Doc changes","breaking-changes/doc-changes",[C[743]]],[C[744],"team/summary",N],["6.1. Meetings","team/meetings",[C[744]]],["6.2. Membership","team/membership",[C[744]]],["6.3. Reviewing","team/reviewing",[C[744]]]]},{"name":"Guide to Rustc Development","url":"https://rustc-dev-guide.rust-lang.org/","pages":[["Getting Started","getting-started",N],["About this guide","about-this-guide",N],[C[745],"building/how-to-build-and-run",N],["1.1. Quickstart","building/quickstart",[C[745]]],["1.2. Prerequisites","building/prerequisites",[C[745]]],["1.3. Suggested Workflows","building/suggested",[C[745]]],["1.4. Distribution artifacts","building/build-install-distribution-artifacts",[C[745]]],["1.5. Building Documentation","building/compiler-documenting",[C[745]]],["1.6. Rustdoc overview","rustdoc",[C[745]]],["1.7. Adding a new target","building/new-target",[C[745]]],["1.8. Optimized build","building/optimized-build",[C[745]]],[C[746],"tests/intro",N],[C[747],"tests/running",[C[746]]],["2.1.1. Testing with Docker","tests/docker",[C[746],C[747]]],["2.1.2. Testing with CI","tests/ci",[C[746],C[747]]],["2.2. Adding new tests","tests/adding",[C[746]]],[C[748],"tests/compiletest",[C[746]]],["2.3.1. UI tests","tests/ui",[C[746],C[748]]],["2.3.2. Test headers","tests/headers",[C[746],C[748]]],[C[749],"tests/integration",[C[746]]],["2.4.1. Crater","tests/crater",[C[746],C[749]]],["2.4.2. Fuchsia","tests/fuchsia",[C[746],C[749]]],["2.4.3. Rust for Linux","tests/rust-for-linux",[C[746],C[749]]],["2.5. Performance testing","tests/perf",[C[746]]],["2.6. Suggest tests tool","tests/suggest-tests",[C[746]]],[C[750],"compiler-debugging",N],["3.1. Using the tracing/logging instrumentation","tracing",[C[750]]],[C[751],C[853],N],["4.1. with the linux perf tool","profiling/with_perf",[C[751]]],["4.2. with Windows Performance Analyzer","profiling/wpa_profiling",[C[751]]],["5. crates.io Dependencies","crates-io",N],["6. Contribution Procedures",C[742],N],["7. About the compiler team","compiler-team",N],["8. Using Git","git",N],["9. Mastering @rustbot","rustbot",N],["10. Walkthrough: a typical contribution","walkthrough",N],["11. Implementing new language features","implementing_new_features",N],["12. Stability attributes",C[904],N],["13. Stabilizing Features","stabilization_guide",N],["14. Feature Gates","feature-gates",N],["15. Coding conventions","conventions",N],["16. Procedures for Breaking Changes","bug-fix-procedure",N],["17. Using external repositories","external-repos",N],["18. Fuzzing","fuzzing",N],[C[752],"notification-groups/about",N],["19.1. Apple","notification-groups/apple",[C[752]]],["19.2. ARM","notification-groups/arm",[C[752]]],["19.3. Cleanup Crew","notification-groups/cleanup-crew",[C[752]]],["19.4. LLVM","notification-groups/llvm",[C[752]]],["19.5. RISC-V","notification-groups/risc-v",[C[752]]],["19.6. Windows","notification-groups/windows",[C[752]]],["19.7. Rust for Linux","notification-groups/rust-for-linux",[C[752]]],["20. Licenses","licenses",N],["21. Editions","guides/editions",N],["22. Prologue","building/bootstrapping/intro",N],["23. What Bootstrapping does","building/bootstrapping/what-bootstrapping-does",N],["24. How Bootstrap does it","building/bootstrapping/how-bootstrap-does-it",N],["25. Prologue","part-2-intro",N],["26. Overview of the compiler","overview",N],["27. The compiler source code","compiler-src",N],[C[753],"query",N],["28.1. The Query Evaluation Model in Detail","queries/query-evaluation-model-in-detail",[C[753]]],["28.2. Incremental compilation","queries/incremental-compilation",[C[753]]],["28.3. Incremental compilation In Detail","queries/incremental-compilation-in-detail",[C[753]]],["28.4. Debugging and Testing","incrcomp-debugging",[C[753]]],["28.5. Salsa","salsa",[C[753]]],["29. Memory Management in Rustc","memory",N],["30. Serialization in Rustc","serialization",N],["31. Parallel Compilation","parallel-rustc",N],[C[754],"rustdoc-internals",N],["32.1. Search","rustdoc-internals/search",[C[754]]],["33. Prologue","part-3-intro",N],["34. Command-line arguments","cli",N],[C[755],"rustc-driver",N],["35.1. Example: Type checking","rustc-driver-interacting-with-the-ast",[C[755]]],["35.2. Example: Getting diagnostics","rustc-driver-getting-diagnostics",[C[755]]],[C[756],"syntax-intro",N],["36.1. Lexing and Parsing","the-parser",[C[756]]],["36.2. Macro expansion","macro-expansion",[C[756]]],["36.3. Name resolution","name-resolution",[C[756]]],["36.4. Attributes",C[779],[C[756]]],["36.5. #[test] Implementation","test-implementation",[C[756]]],["36.6. Panic Implementation","panic-implementation",[C[756]]],["36.7. AST Validation","ast-validation",[C[756]]],["36.8. Feature Gate Checking","feature-gate-ck",[C[756]]],["36.9. Lang Items","lang-items",[C[756]]],[C[757],"hir",N],["37.1. Lowering AST to HIR","ast-lowering",[C[757]]],["37.2. Debugging","hir-debugging",[C[757]]],["38. The THIR (Typed High-level IR)","thir",N],[C[758],"mir/index",N],["39.1. MIR construction","mir/construction",[C[758]]],["39.2. MIR visitor and traversal","mir/visitor",[C[758]]],["39.3. MIR queries and passes: getting the MIR","mir/passes",[C[758]]],["40. Identifiers in the Compiler",C[776],N],["41. Closure expansion","closure",N],["42. Inline assembly","asm",N],["43. Prologue","part-4-intro",N],[C[759],"generic_parameters_summary",N],["44.1. What is ty::Generics","what_is_ty_generics",[C[759]]],[C[760],"early-late-bound-params/early-late-bound-summary",[C[759]]],["44.2.1. Implementation nuances of early/late bound parameters","early-late-bound-params/early-late-bound-implementation-nuances",[C[759],C[760]]],["44.2.2. Interactions with turbofishing","early-late-bound-params/turbofishing-and-early-late-bound",[C[759],C[760]]],[C[761],"ty",N],["45.1. ADTs and Generic Arguments","ty_module/generic_arguments",[C[761]]],["45.2. Parameter types/consts/regions","ty_module/param_ty_const_regions",[C[761]]],["45.3. EarlyBinder and instantiating parameters","ty_module/early_binder",[C[761]]],["45.4. Binder and Higher ranked regions","ty_module/binders",[C[761]]],["45.5. Instantiating binders","ty_module/instantiating_binders",[C[761]]],["45.6. Constants in the type system","constants",[C[761]]],["46. TypeFolder and TypeFoldable","ty-fold",N],[C[762],"param_env/param_env_summary",N],["47.1. What is it?","param_env/param_env_what_is_it",[C[762]]],["47.2. How are ParamEnv's constructed internally","param_env/param_env_construction_internals",[C[762]]],["47.3. Which ParamEnv do I use?","param_env/param_env_acquisition",[C[762]]],["48. Type inference","type-inference",N],[C[763],"traits/resolution",N],["49.1. Higher-ranked trait bounds","traits/hrtb",[C[763]]],["49.2. Caching subtleties","traits/caching",[C[763]]],["49.3. Implied bounds","traits/implied-bounds",[C[763]]],["49.4. Specialization","traits/specialization",[C[763]]],[C[764],"traits/chalk",[C[763]]],["49.5.1. Lowering to logic","traits/lowering-to-logic",[C[763],C[764]]],["49.5.2. Goals and clauses","traits/goals-and-clauses",[C[763],C[764]]],["49.5.3. Canonical queries","traits/canonical-queries",[C[763],C[764]]],["49.5.4. Canonicalization","traits/canonicalization",[C[763],C[764]]],[C[765],"solve/trait-solving",[C[763]]],["49.6.1. Invariants of the type system","solve/invariants",[C[763],C[765]]],["49.6.2. The solver","solve/the-solver",[C[763],C[765]]],["49.6.3. Canonicalization","solve/canonicalization",[C[763],C[765]]],["49.6.4. Coinduction","solve/coinduction",[C[763],C[765]]],["49.6.5. Caching","solve/caching",[C[763],C[765]]],["49.6.6. Proof trees","solve/proof-trees",[C[763],C[765]]],["49.6.7. Normalization","solve/normalization",[C[763],C[765]]],["49.6.8. Opaque types","solve/opaque-types",[C[763],C[765]]],["49.6.9. Significant changes and quirks","solve/significant-changes",[C[763],C[765]]],["49.7. Unsize and CoerceUnsized traits","traits/unsize",[C[763]]],[C[766],"type-checking",N],["50.1. Method Lookup","method-lookup",[C[766]]],["50.2. Variance","variance",[C[766]]],[C[767],"opaque-types-type-alias-impl-trait",[C[766]]],["50.3.1. Inference details","opaque-types-impl-trait-inference",[C[766],C[767]]],["50.3.2. Return Position Impl Trait In Trait","return-position-impl-trait-in-trait",[C[766],C[767]]],["50.3.3. Region inference restrictions","borrow_check/opaque-types-region-inference-restrictions",[C[766],C[767]]],["51. Effect checking","effects",N],["52. Pattern and Exhaustiveness Checking","pat-exhaustive-checking",N],["53. Unsafety Checking","unsafety-checking",N],["54. MIR dataflow","mir/dataflow",N],["55. Drop elaboration","mir/drop-elaboration",N],[C[768],"borrow_check",N],[C[769],"borrow_check/moves_and_initialization",[C[768]]],["56.1.1. Move paths","borrow_check/moves_and_initialization/move_paths",[C[768],C[769]]],["56.2. MIR type checker","borrow_check/type_check",[C[768]]],["56.3. Drop check","borrow_check/drop_check",[C[768]]],[C[770],"borrow_check/region_inference",[C[768]]],["56.4.1. Constraint propagation","borrow_check/region_inference/constraint_propagation",[C[768],C[770]]],["56.4.2. Lifetime parameters","borrow_check/region_inference/lifetime_parameters",[C[768],C[770]]],["56.4.3. Member constraints","borrow_check/region_inference/member_constraints",[C[768],C[770]]],["56.4.4. Placeholders and universes","borrow_check/region_inference/placeholders_and_universes",[C[768],C[770]]],["56.4.5. Closure constraints","borrow_check/region_inference/closure_constraints",[C[768],C[770]]],["56.4.6. Error reporting","borrow_check/region_inference/error_reporting",[C[768],C[770]]],["56.5. Two-phase-borrows","borrow_check/two_phase_borrows",[C[768]]],[C[771],"diagnostics",N],["57.1. Diagnostic and subdiagnostic structs","diagnostics/diagnostic-structs",[C[771]]],["57.2. Translation","diagnostics/translation",[C[771]]],["57.3. LintStore","diagnostics/lintstore",[C[771]]],["57.4. Error codes","diagnostics/error-codes",[C[771]]],["57.5. Diagnostic items","diagnostics/diagnostic-items",[C[771]]],["57.6. ErrorGuaranteed","diagnostics/error-guaranteed",[C[771]]],["58. Prologue","part-5-intro",N],["59. MIR optimizations","mir/optimizations",N],["60. Debugging MIR","mir/debugging",N],[C[772],"const-eval",N],["61.1. Interpreter","const-eval/interpret",[C[772]]],["62. Monomorphization","backend/monomorph",N],["63. Lowering MIR","backend/lowering-mir",N],[C[773],"backend/codegen",N],["64.1. Updating LLVM","backend/updating-llvm",[C[773]]],["64.2. Debugging LLVM","backend/debugging",[C[773]]],["64.3. Backend Agnostic Codegen","backend/backend-agnostic",[C[773]]],["64.4. Implicit Caller Location","backend/implicit-caller-location",[C[773]]],["65. Libraries and Metadata","backend/libs-and-metadata",N],["66. Profile-guided Optimization",C[774],N],["67. LLVM Source-Based Code Coverage","llvm-coverage-instrumentation",N],["68. Sanitizers Support","sanitizers",N],["69. Debugging support in the Rust compiler","debugging-support-in-rustc",N],["Appendix A: Background topics","appendix/background",N],["Appendix B: Glossary",C[69],N],["Appendix C: Code Index","appendix/code-index",N],["Appendix D: Compiler Lecture Series","appendix/compiler-lecture",N],["Appendix E: Bibliography","appendix/bibliography",N],["Appendix Z: HumorRust","appendix/humorust",N]]},{"name":"The Rust Reference","url":"https://doc.rust-lang.org/reference/","pages":[[C[26],C[47],N],["1. Notation","notation",N],[C[775],"lexical-structure",N],["2.1. Input format","input-format",[C[775]]],["2.2. Keywords","keywords",[C[775]]],["2.3. Identifiers",C[776],[C[775]]],["2.4. Comments","comments",[C[775]]],["2.5. Whitespace","whitespace",[C[775]]],["2.6. Tokens","tokens",[C[775]]],[C[777],"macros",N],["3.1. Macros By Example","macros-by-example",[C[777]]],["3.2. Procedural Macros","procedural-macros",[C[777]]],["4. Crates and source files","crates-and-source-files",N],["5. Conditional compilation","conditional-compilation",N],[C[778],"items",N],["6.1. Modules","items/modules",[C[778]]],["6.2. Extern crates","items/extern-crates",[C[778]]],["6.3. Use declarations","items/use-declarations",[C[778]]],["6.4. Functions","items/functions",[C[778]]],["6.5. Type aliases","items/type-aliases",[C[778]]],["6.6. Structs","items/structs",[C[778]]],["6.7. Enumerations","items/enumerations",[C[778]]],["6.8. Unions","items/unions",[C[778]]],["6.9. Constant items","items/constant-items",[C[778]]],["6.10. Static items","items/static-items",[C[778]]],["6.11. Traits","items/traits",[C[778]]],["6.12. Implementations","items/implementations",[C[778]]],["6.13. External blocks","items/external-blocks",[C[778]]],["6.14. Generic parameters","items/generics",[C[778]]],["6.15. Associated Items","items/associated-items",[C[778]]],[C[780],C[779],N],["7.1. Testing","attributes/testing",[C[780]]],["7.2. Derive","attributes/derive",[C[780]]],["7.3. Diagnostics","attributes/diagnostics",[C[780]]],["7.4. Code generation","attributes/codegen",[C[780]]],["7.5. Limits","attributes/limits",[C[780]]],["7.6. Type System","attributes/type_system",[C[780]]],["7.7. Debugger","attributes/debugger",[C[780]]],[C[781],"statements-and-expressions",N],["8.1. Statements","statements",[C[781]]],[C[782],"expressions",[C[781]]],["8.2.1. Literal expressions","expressions/literal-expr",[C[781],C[782]]],["8.2.2. Path expressions","expressions/path-expr",[C[781],C[782]]],["8.2.3. Block expressions","expressions/block-expr",[C[781],C[782]]],["8.2.4. Operator expressions","expressions/operator-expr",[C[781],C[782]]],["8.2.5. Grouped expressions","expressions/grouped-expr",[C[781],C[782]]],["8.2.6. Array and index expressions","expressions/array-expr",[C[781],C[782]]],["8.2.7. Tuple and index expressions","expressions/tuple-expr",[C[781],C[782]]],["8.2.8. Struct expressions","expressions/struct-expr",[C[781],C[782]]],["8.2.9. Call expressions","expressions/call-expr",[C[781],C[782]]],["8.2.10. Method call expressions","expressions/method-call-expr",[C[781],C[782]]],["8.2.11. Field access expressions","expressions/field-expr",[C[781],C[782]]],["8.2.12. Closure expressions","expressions/closure-expr",[C[781],C[782]]],["8.2.13. Loop expressions","expressions/loop-expr",[C[781],C[782]]],["8.2.14. Range expressions","expressions/range-expr",[C[781],C[782]]],["8.2.15. If and if let expressions","expressions/if-expr",[C[781],C[782]]],["8.2.16. Match expressions","expressions/match-expr",[C[781],C[782]]],["8.2.17. Return expressions","expressions/return-expr",[C[781],C[782]]],["8.2.18. Await expressions","expressions/await-expr",[C[781],C[782]]],["8.2.19. Underscore expressions","expressions/underscore-expr",[C[781],C[782]]],["9. Patterns","patterns",N],[C[783],"type-system",N],[C[784],"types",[C[783]]],["10.1.1. Boolean type","types/boolean",[C[783],C[784]]],["10.1.2. Numeric types","types/numeric",[C[783],C[784]]],["10.1.3. Textual types","types/textual",[C[783],C[784]]],["10.1.4. Never type","types/never",[C[783],C[784]]],["10.1.5. Tuple types","types/tuple",[C[783],C[784]]],["10.1.6. Array types","types/array",[C[783],C[784]]],["10.1.7. Slice types","types/slice",[C[783],C[784]]],["10.1.8. Struct types","types/struct",[C[783],C[784]]],["10.1.9. Enumerated types","types/enum",[C[783],C[784]]],["10.1.10. Union types","types/union",[C[783],C[784]]],["10.1.11. Function item types","types/function-item",[C[783],C[784]]],["10.1.12. Closure types","types/closure",[C[783],C[784]]],["10.1.13. Pointer types","types/pointer",[C[783],C[784]]],["10.1.14. Function pointer types","types/function-pointer",[C[783],C[784]]],["10.1.15. Trait object types","types/trait-object",[C[783],C[784]]],["10.1.16. Impl trait type","types/impl-trait",[C[783],C[784]]],["10.1.17. Type parameters","types/parameters",[C[783],C[784]]],["10.1.18. Inferred type","types/inferred",[C[783],C[784]]],["10.2. Dynamically Sized Types","dynamically-sized-types",[C[783]]],["10.3. Type layout","type-layout",[C[783]]],["10.4. Interior mutability","interior-mutability",[C[783]]],["10.5. Subtyping and Variance",C[794],[C[783]]],["10.6. Trait and lifetime bounds","trait-bounds",[C[783]]],["10.7. Type coercions","type-coercions",[C[783]]],["10.8. Destructors",C[798],[C[783]]],["10.9. Lifetime elision",C[793],[C[783]]],["11. Special types and traits","special-types-and-traits",N],[C[785],"names",N],["12.1. Namespaces","names/namespaces",[C[785]]],["12.2. Scopes","names/scopes",[C[785]]],["12.3. Preludes","names/preludes",[C[785]]],["12.4. Paths","paths",[C[785]]],["12.5. Name resolution","names/name-resolution",[C[785]]],["12.6. Visibility and privacy","visibility-and-privacy",[C[785]]],[C[786],"memory-model",N],["13.1. Memory allocation and lifetime","memory-allocation-and-lifetime",[C[786]]],["13.2. Variables","variables",[C[786]]],["14. Linkage","linkage",N],["15. Inline assembly","inline-assembly",N],[C[787],"unsafety",N],["16.1. The unsafe keyword","unsafe-keyword",[C[787]]],["16.2. Behavior considered undefined","behavior-considered-undefined",[C[787]]],["16.3. Behavior not considered unsafe","behavior-not-considered-unsafe",[C[787]]],["17. Constant Evaluation","const_eval",N],["18. Application Binary Interface","abi",N],["19. The Rust runtime","runtime",N],[C[788],"appendices",N],["20.1. Macro Follow-Set Ambiguity Formal Specification","macro-ambiguity",[C[788]]],["20.2. Influences","influences",[C[788]]],["20.3. Glossary",C[860],[C[788]]]]},{"name":"The Rustonomicon","url":"https://doc.rust-lang.org/nomicon/","pages":[[C[26],"intro",N],[C[789],"meet-safe-and-unsafe",N],["1.1. How Safe and Unsafe Interact","safe-unsafe-meaning",[C[789]]],["1.2. What Unsafe Can Do","what-unsafe-does",[C[789]]],["1.3. Working with Unsafe","working-with-unsafe",[C[789]]],[C[790],"data",N],["2.1. repr(Rust)","repr-rust",[C[790]]],["2.2. Exotically Sized Types","exotic-sizes",[C[790]]],["2.3. Other reprs","other-reprs",[C[790]]],[C[792],C[903],N],["3.1. References",C[791],[C[792]]],["3.2. Aliasing","aliasing",[C[792]]],["3.3. Lifetimes",C[896],[C[792]]],["3.4. Limits of Lifetimes","lifetime-mismatch",[C[792]]],["3.5. Lifetime Elision",C[793],[C[792]]],["3.6. Unbounded Lifetimes","unbounded-lifetimes",[C[792]]],["3.7. Higher-Rank Trait Bounds","hrtb",[C[792]]],["3.8. Subtyping and Variance",C[794],[C[792]]],["3.9. Drop Check","dropck",[C[792]]],["3.10. PhantomData","phantom-data",[C[792]]],["3.11. Splitting Borrows","borrow-splitting",[C[792]]],[C[795],"conversions",N],["4.1. Coercions","coercions",[C[795]]],["4.2. The Dot Operator","dot-operator",[C[795]]],["4.3. Casts","casts",[C[795]]],["4.4. Transmutes","transmutes",[C[795]]],[C[796],"uninitialized",N],["5.1. Checked","checked-uninit",[C[796]]],["5.2. Drop Flags","drop-flags",[C[796]]],["5.3. Unchecked","unchecked-uninit",[C[796]]],[C[797],"obrm",N],["6.1. Constructors","constructors",[C[797]]],["6.2. Destructors",C[798],[C[797]]],["6.3. Leaking","leaking",[C[797]]],[C[799],"unwinding",N],["7.1. Exception Safety","exception-safety",[C[799]]],["7.2. Poisoning","poisoning",[C[799]]],[C[801],C[800],N],["8.1. Races","races",[C[801]]],["8.2. Send and Sync","send-and-sync",[C[801]]],["8.3. Atomics","atomics",[C[801]]],[C[802],"vec/vec",N],["9.1. Layout","vec/vec-layout",[C[802]]],["9.2. Allocating","vec/vec-alloc",[C[802]]],["9.3. Push and Pop","vec/vec-push-pop",[C[802]]],["9.4. Deallocating","vec/vec-dealloc",[C[802]]],["9.5. Deref","vec/vec-deref",[C[802]]],["9.6. Insert and Remove","vec/vec-insert-remove",[C[802]]],["9.7. IntoIter","vec/vec-into-iter",[C[802]]],["9.8. RawVec","vec/vec-raw",[C[802]]],["9.9. Drain","vec/vec-drain",[C[802]]],["9.10. Handling Zero-Sized Types","vec/vec-zsts",[C[802]]],["9.11. Final Code","vec/vec-final",[C[802]]],[C[803],"arc-mutex/arc-and-mutex",N],[C[804],"arc-mutex/arc",[C[803]]],["10.1.1. Layout","arc-mutex/arc-layout",[C[803],C[804]]],["10.1.2. Base Code","arc-mutex/arc-base",[C[803],C[804]]],["10.1.3. Cloning","arc-mutex/arc-clone",[C[803],C[804]]],["10.1.4. Dropping","arc-mutex/arc-drop",[C[803],C[804]]],["10.1.5. Final Code","arc-mutex/arc-final",[C[803],C[804]]],["11. FFI","ffi",N],[C[805],"beneath-std",N],["12.1. #[panic_handler]","panic-handler",[C[805]]]]},{"name":C[806],"url":"https://doc.rust-lang.org/unstable-book/","pages":[[C[806],"the-unstable-book",N],[C[807],"compiler-flags",N],["1.1. branch_protection","compiler-flags/branch-protection",[C[807]]],["1.2. cf_protection","compiler-flags/cf-protection",[C[807]]],["1.3. codegen_backend","compiler-flags/codegen-backend",[C[807]]],["1.4. codegen_options","compiler-flags/codegen-options",[C[807]]],["1.5. control_flow_guard","compiler-flags/control-flow-guard",[C[807]]],["1.6. coverage_options","compiler-flags/coverage-options",[C[807]]],["1.7. debug_info_for_profiling","compiler-flags/debug_info_for_profiling",[C[807]]],["1.8. default_hidden_visibility","compiler-flags/default-hidden-visibility",[C[807]]],["1.9. direct_access_external_data","compiler-flags/direct-access-external-data",[C[807]]],["1.10. dump_mono_stats","compiler-flags/dump-mono-stats",[C[807]]],["1.11. dump_mono_stats_format","compiler-flags/dump-mono-stats-format",[C[807]]],["1.12. dwarf_version","compiler-flags/dwarf-version",[C[807]]],["1.13. dylib_lto","compiler-flags/dylib-lto",[C[807]]],["1.14. emit_stack_sizes","compiler-flags/emit-stack-sizes",[C[807]]],["1.15. env_set","compiler-flags/env-set",[C[807]]],["1.16. export_executable_symbols","compiler-flags/export-executable-symbols",[C[807]]],["1.17. extern_options","compiler-flags/extern-options",[C[807]]],["1.18. external_clangrt","compiler-flags/external-clangrt",[C[807]]],["1.19. fixed_x18","compiler-flags/fixed-x18",[C[807]]],["1.20. function_return","compiler-flags/function-return",[C[807]]],["1.21. instrument_xray","compiler-flags/instrument-xray",[C[807]]],["1.22. link_native_libraries","compiler-flags/link-native-libraries",[C[807]]],["1.23. linker_features","compiler-flags/linker-features",[C[807]]],["1.24. llvm_module_flag","compiler-flags/llvm-module-flag",[C[807]]],["1.25. location_detail","compiler-flags/location-detail",[C[807]]],["1.26. move_size_limit","compiler-flags/move-size-limit",[C[807]]],["1.27. no_jump_tables","compiler-flags/no-jump-tables",[C[807]]],["1.28. no_parallel_llvm","compiler-flags/no-parallel-llvm",[C[807]]],["1.29. no_unique_section_names","compiler-flags/no-unique-section-names",[C[807]]],["1.30. on_broken_pipe","compiler-flags/on-broken-pipe",[C[807]]],["1.31. patchable_function_entry","compiler-flags/patchable-function-entry",[C[807]]],["1.32. print_check_cfg","compiler-flags/print-check-cfg",[C[807]]],["1.33. profile","compiler-flags/profile",[C[807]]],["1.34. profile_sample_use","compiler-flags/profile_sample_use",[C[807]]],["1.35. remap_cwd_prefix","compiler-flags/remap-cwd-prefix",[C[807]]],["1.36. remap_path_scope","compiler-flags/remap-path-scope",[C[807]]],["1.37. report_time","compiler-flags/report-time",[C[807]]],["1.38. sanitizer","compiler-flags/sanitizer",[C[807]]],["1.39. self_profile","compiler-flags/self-profile",[C[807]]],["1.40. self_profile_events","compiler-flags/self-profile-events",[C[807]]],["1.41. shell_argfiles","compiler-flags/shell-argfiles",[C[807]]],["1.42. src_hash_algorithm","compiler-flags/src-hash-algorithm",[C[807]]],["1.43. temps_dir","compiler-flags/temps-dir",[C[807]]],["1.44. tiny_const_eval_limit","compiler-flags/tiny-const-eval-limit",[C[807]]],["1.45. tls_model","compiler-flags/tls-model",[C[807]]],["1.46. ub_checks","compiler-flags/ub-checks",[C[807]]],["1.47. unsound_mir_opts","compiler-flags/unsound-mir-opts",[C[807]]],["1.48. verbose_asm","compiler-flags/verbose-asm",[C[807]]],["1.49. virtual_function_elimination","compiler-flags/virtual-function-elimination",[C[807]]],["1.50. wasm_c_abi","compiler-flags/wasm-c-abi",[C[807]]],[C[808],"language-features",N],["2.1. aarch64_ver_target_feature","language-features/aarch64-ver-target-feature",[C[808]]],["2.2. abi_avr_interrupt","language-features/abi-avr-interrupt",[C[808]]],["2.3. abi_c_cmse_nonsecure_call","language-features/abi-c-cmse-nonsecure-call",[C[808]]],["2.4. abi_msp430_interrupt","language-features/abi-msp430-interrupt",[C[808]]],["2.5. abi_ptx","language-features/abi-ptx",[C[808]]],["2.6. abi_riscv_interrupt","language-features/abi-riscv-interrupt",[C[808]]],["2.7. abi_unadjusted","language-features/abi-unadjusted",[C[808]]],["2.8. abi_vectorcall","language-features/abi-vectorcall",[C[808]]],["2.9. abi_x86_interrupt","language-features/abi-x86-interrupt",[C[808]]],["2.10. adt_const_params","language-features/adt-const-params",[C[808]]],["2.11. alloc_error_handler","language-features/alloc-error-handler",[C[808]]],["2.12. allocator_internals","language-features/allocator-internals",[C[808]]],["2.13. allow_internal_unsafe","language-features/allow-internal-unsafe",[C[808]]],["2.14. allow_internal_unstable","language-features/allow-internal-unstable",[C[808]]],["2.15. anonymous_lifetime_in_impl_trait","language-features/anonymous-lifetime-in-impl-trait",[C[808]]],["2.16. arbitrary_self_types","language-features/arbitrary-self-types",[C[808]]],["2.17. arm_target_feature","language-features/arm-target-feature",[C[808]]],["2.18. asm_const","language-features/asm-const",[C[808]]],["2.19. asm_experimental_arch","language-features/asm-experimental-arch",[C[808]]],["2.20. asm_goto","language-features/asm-goto",[C[808]]],["2.21. asm_unwind","language-features/asm-unwind",[C[808]]],["2.22. associated_const_equality","language-features/associated-const-equality",[C[808]]],["2.23. associated_type_defaults","language-features/associated-type-defaults",[C[808]]],["2.24. async_closure","language-features/async-closure",[C[808]]],["2.25. async_fn_track_caller","language-features/async-fn-track-caller",[C[808]]],["2.26. async_for_loop","language-features/async-for-loop",[C[808]]],["2.27. auto_traits","language-features/auto-traits",[C[808]]],["2.28. avx512_target_feature","language-features/avx512-target-feature",[C[808]]],["2.29. box_patterns","language-features/box-patterns",[C[808]]],["2.30. bpf_target_feature","language-features/bpf-target-feature",[C[808]]],["2.31. builtin_syntax","language-features/builtin-syntax",[C[808]]],["2.32. c_variadic","language-features/c-variadic",[C[808]]],["2.33. cfg_overflow_checks","language-features/cfg-overflow-checks",[C[808]]],["2.34. cfg_relocation_model","language-features/cfg-relocation-model",[C[808]]],["2.35. cfg_sanitize","language-features/cfg-sanitize",[C[808]]],["2.36. cfg_sanitizer_cfi","language-features/cfg-sanitizer-cfi",[C[808]]],["2.37. cfg_target_compact","language-features/cfg-target-compact",[C[808]]],["2.38. cfg_target_has_atomic","language-features/cfg-target-has-atomic",[C[808]]],["2.39. cfg_target_has_atomic_equal_alignment","language-features/cfg-target-has-atomic-equal-alignment",[C[808]]],["2.40. cfg_target_thread_local","language-features/cfg-target-thread-local",[C[808]]],["2.41. cfg_ub_checks","language-features/cfg-ub-checks",[C[808]]],["2.42. cfg_version","language-features/cfg-version",[C[808]]],["2.43. cfi_encoding","language-features/cfi-encoding",[C[808]]],["2.44. closure_lifetime_binder","language-features/closure-lifetime-binder",[C[808]]],["2.45. closure_track_caller","language-features/closure-track-caller",[C[808]]],["2.46. cmse_nonsecure_entry","language-features/cmse-nonsecure-entry",[C[808]]],["2.47. compiler_builtins","language-features/compiler-builtins",[C[808]]],["2.48. const_async_blocks","language-features/const-async-blocks",[C[808]]],["2.49. const_closures","language-features/const-closures",[C[808]]],["2.50. const_extern_fn","language-features/const-extern-fn",[C[808]]],["2.51. const_fn_floating_point_arithmetic","language-features/const-fn-floating-point-arithmetic",[C[808]]],["2.52. const_for","language-features/const-for",[C[808]]],["2.53. const_mut_refs","language-features/const-mut-refs",[C[808]]],["2.54. const_precise_live_drops","language-features/const-precise-live-drops",[C[808]]],["2.55. const_refs_to_cell","language-features/const-refs-to-cell",[C[808]]],["2.56. const_refs_to_static","language-features/const-refs-to-static",[C[808]]],["2.57. const_trait_impl","language-features/const-trait-impl",[C[808]]],["2.58. const_try","language-features/const-try",[C[808]]],["2.59. coroutine_clone","language-features/coroutine-clone",[C[808]]],["2.60. coroutines","language-features/coroutines",[C[808]]],["2.61. coverage_attribute","language-features/coverage-attribute",[C[808]]],["2.62. csky_target_feature","language-features/csky-target-feature",[C[808]]],["2.63. custom_inner_attributes","language-features/custom-inner-attributes",[C[808]]],["2.64. custom_mir","language-features/custom-mir",[C[808]]],["2.65. custom_test_frameworks","language-features/custom-test-frameworks",[C[808]]],["2.66. decl_macro","language-features/decl-macro",[C[808]]],["2.67. default_type_parameter_fallback","language-features/default-type-parameter-fallback",[C[808]]],["2.68. deprecated_safe","language-features/deprecated-safe",[C[808]]],["2.69. deprecated_suggestion","language-features/deprecated-suggestion",[C[808]]],["2.70. deref_patterns","language-features/deref-patterns",[C[808]]],["2.71. derive_smart_pointer","language-features/derive-smart-pointer",[C[808]]],["2.72. do_not_recommend","language-features/do-not-recommend",[C[808]]],["2.73. doc_auto_cfg","language-features/doc-auto-cfg",[C[808]]],["2.74. doc_cfg","language-features/doc-cfg",[C[808]]],["2.75. doc_cfg_hide","language-features/doc-cfg-hide",[C[808]]],["2.76. doc_masked","language-features/doc-masked",[C[808]]],["2.77. doc_notable_trait","language-features/doc-notable-trait",[C[808]]],["2.78. dropck_eyepatch","language-features/dropck-eyepatch",[C[808]]],["2.79. dyn_star","language-features/dyn-star",[C[808]]],["2.80. effects","language-features/effects",[C[808]]],["2.81. ermsb_target_feature","language-features/ermsb-target-feature",[C[808]]],["2.82. exhaustive_patterns","language-features/exhaustive-patterns",[C[808]]],["2.83. explicit_tail_calls","language-features/explicit-tail-calls",[C[808]]],["2.84. expr_fragment_specifier_2024","language-features/expr-fragment-specifier-2024",[C[808]]],["2.85. extended_varargs_abi_support","language-features/extended-varargs-abi-support",[C[808]]],["2.86. extern_types","language-features/extern-types",[C[808]]],["2.87. f128","language-features/f128",[C[808]]],["2.88. f16","language-features/f16",[C[808]]],["2.89. ffi_const","language-features/ffi-const",[C[808]]],["2.90. ffi_pure","language-features/ffi-pure",[C[808]]],["2.91. fn_align","language-features/fn-align",[C[808]]],["2.92. fn_delegation","language-features/fn-delegation",[C[808]]],["2.93. freeze_impls","language-features/freeze-impls",[C[808]]],["2.94. fundamental","language-features/fundamental",[C[808]]],["2.95. gen_blocks","language-features/gen-blocks",[C[808]]],["2.96. generic_arg_infer","language-features/generic-arg-infer",[C[808]]],["2.97. generic_assert","language-features/generic-assert",[C[808]]],["2.98. generic_associated_types_extended","language-features/generic-associated-types-extended",[C[808]]],["2.99. generic_const_exprs","language-features/generic-const-exprs",[C[808]]],["2.100. generic_const_items","language-features/generic-const-items",[C[808]]],["2.101. global_registration","language-features/global-registration",[C[808]]],["2.102. half_open_range_patterns_in_slices","language-features/half-open-range-patterns-in-slices",[C[808]]],["2.103. hexagon_target_feature","language-features/hexagon-target-feature",[C[808]]],["2.104. if_let_guard","language-features/if-let-guard",[C[808]]],["2.105. impl_trait_in_assoc_type","language-features/impl-trait-in-assoc-type",[C[808]]],["2.106. impl_trait_in_fn_trait_return","language-features/impl-trait-in-fn-trait-return",[C[808]]],["2.107. inherent_associated_types","language-features/inherent-associated-types",[C[808]]],["2.108. inline_const_pat","language-features/inline-const-pat",[C[808]]],["2.109. intra_doc_pointers","language-features/intra-doc-pointers",[C[808]]],["2.110. intrinsics","language-features/intrinsics",[C[808]]],["2.111. lahfsahf_target_feature","language-features/lahfsahf-target-feature",[C[808]]],["2.112. lang_items","language-features/lang-items",[C[808]]],["2.113. large_assignments","language-features/large-assignments",[C[808]]],["2.114. lazy_type_alias","language-features/lazy-type-alias",[C[808]]],["2.115. let_chains","language-features/let-chains",[C[808]]],["2.116. lifetime_capture_rules_2024","language-features/lifetime-capture-rules-2024",[C[808]]],["2.117. link_arg_attribute","language-features/link-arg-attribute",[C[808]]],["2.118. link_cfg","language-features/link-cfg",[C[808]]],["2.119. link_llvm_intrinsics","language-features/link-llvm-intrinsics",[C[808]]],["2.120. linkage","language-features/linkage",[C[808]]],["2.121. loongarch_target_feature","language-features/loongarch-target-feature",[C[808]]],["2.122. macro_metavar_expr","language-features/macro-metavar-expr",[C[808]]],["2.123. macro_metavar_expr_concat","language-features/macro-metavar-expr-concat",[C[808]]],["2.124. marker_trait_attr","language-features/marker-trait-attr",[C[808]]],["2.125. min_exhaustive_patterns","language-features/min-exhaustive-patterns",[C[808]]],["2.126. min_specialization","language-features/min-specialization",[C[808]]],["2.127. mips_target_feature","language-features/mips-target-feature",[C[808]]],["2.128. more_qualified_paths","language-features/more-qualified-paths",[C[808]]],["2.129. multiple_supertrait_upcastable","language-features/multiple-supertrait-upcastable",[C[808]]],["2.130. must_not_suspend","language-features/must-not-suspend",[C[808]]],["2.131. mut_ref","language-features/mut-ref",[C[808]]],["2.132. naked_functions","language-features/naked-functions",[C[808]]],["2.133. native_link_modifiers_as_needed","language-features/native-link-modifiers-as-needed",[C[808]]],["2.134. needs_panic_runtime","language-features/needs-panic-runtime",[C[808]]],["2.135. negative_bounds","language-features/negative-bounds",[C[808]]],["2.136. negative_impls","language-features/negative-impls",[C[808]]],["2.137. never_patterns","language-features/never-patterns",[C[808]]],["2.138. never_type","language-features/never-type",[C[808]]],["2.139. never_type_fallback","language-features/never-type-fallback",[C[808]]],["2.140. no_core","language-features/no-core",[C[808]]],["2.141. no_sanitize","language-features/no-sanitize",[C[808]]],["2.142. non_exhaustive_omitted_patterns_lint","language-features/non-exhaustive-omitted-patterns-lint",[C[808]]],["2.143. non_lifetime_binders","language-features/non-lifetime-binders",[C[808]]],["2.144. object_safe_for_dispatch","language-features/object-safe-for-dispatch",[C[808]]],["2.145. offset_of_enum","language-features/offset-of-enum",[C[808]]],["2.146. offset_of_nested","language-features/offset-of-nested",[C[808]]],["2.147. offset_of_slice","language-features/offset-of-slice",[C[808]]],["2.148. omit_gdb_pretty_printer_section","language-features/omit-gdb-pretty-printer-section",[C[808]]],["2.149. optimize_attribute","language-features/optimize-attribute",[C[808]]],["2.150. panic_runtime","language-features/panic-runtime",[C[808]]],["2.151. patchable_function_entry","language-features/patchable-function-entry",[C[808]]],["2.152. pattern_complexity","language-features/pattern-complexity",[C[808]]],["2.153. pattern_types","language-features/pattern-types",[C[808]]],["2.154. postfix_match","language-features/postfix-match",[C[808]]],["2.155. powerpc_target_feature","language-features/powerpc-target-feature",[C[808]]],["2.156. precise_capturing","language-features/precise-capturing",[C[808]]],["2.157. prelude_import","language-features/prelude-import",[C[808]]],["2.158. prfchw_target_feature","language-features/prfchw-target-feature",[C[808]]],["2.159. proc_macro_hygiene","language-features/proc-macro-hygiene",[C[808]]],["2.160. profiler_runtime","language-features/profiler-runtime",[C[808]]],["2.161. raw_ref_op","language-features/raw-ref-op",[C[808]]],["2.162. ref_pat_eat_one_layer_2024","language-features/ref-pat-eat-one-layer-2024",[C[808]]],["2.163. ref_pat_eat_one_layer_2024_structural","language-features/ref-pat-eat-one-layer-2024-structural",[C[808]]],["2.164. register_tool","language-features/register-tool",[C[808]]],["2.165. repr_simd","language-features/repr-simd",[C[808]]],["2.166. repr128","language-features/repr128",[C[808]]],["2.167. result_ffi_guarantees","language-features/result-ffi-guarantees",[C[808]]],["2.168. return_type_notation","language-features/return-type-notation",[C[808]]],["2.169. riscv_target_feature","language-features/riscv-target-feature",[C[808]]],["2.170. rtm_target_feature","language-features/rtm-target-feature",[C[808]]],["2.171. rust_cold_cc","language-features/rust-cold-cc",[C[808]]],["2.172. rustc_allow_const_fn_unstable","language-features/rustc-allow-const-fn-unstable",[C[808]]],["2.173. rustc_attrs","language-features/rustc-attrs",[C[808]]],["2.174. rustc_private","language-features/rustc-private",[C[808]]],["2.175. rustdoc_internals","language-features/rustdoc-internals",[C[808]]],["2.176. rustdoc_missing_doc_code_examples","language-features/rustdoc-missing-doc-code-examples",[C[808]]],["2.177. shorter_tail_lifetimes","language-features/shorter-tail-lifetimes",[C[808]]],["2.178. simd_ffi","language-features/simd-ffi",[C[808]]],["2.179. specialization","language-features/specialization",[C[808]]],["2.180. sse4a_target_feature","language-features/sse4a-target-feature",[C[808]]],["2.181. staged_api","language-features/staged-api",[C[808]]],["2.182. start","language-features/start",[C[808]]],["2.183. stmt_expr_attributes","language-features/stmt-expr-attributes",[C[808]]],["2.184. strict_provenance","language-features/strict-provenance",[C[808]]],["2.185. string_deref_patterns","language-features/string-deref-patterns",[C[808]]],["2.186. structural_match","language-features/structural-match",[C[808]]],["2.187. target_feature_11","language-features/target-feature-11",[C[808]]],["2.188. tbm_target_feature","language-features/tbm-target-feature",[C[808]]],["2.189. test_unstable_lint","language-features/test-unstable-lint",[C[808]]],["2.190. thread_local","language-features/thread-local",[C[808]]],["2.191. trait_alias","language-features/trait-alias",[C[808]]],["2.192. trait_upcasting","language-features/trait-upcasting",[C[808]]],["2.193. transmute_generic_consts","language-features/transmute-generic-consts",[C[808]]],["2.194. transparent_unions","language-features/transparent-unions",[C[808]]],["2.195. trivial_bounds","language-features/trivial-bounds",[C[808]]],["2.196. try_blocks","language-features/try-blocks",[C[808]]],["2.197. type_alias_impl_trait","language-features/type-alias-impl-trait",[C[808]]],["2.198. type_changing_struct_update","language-features/type-changing-struct-update",[C[808]]],["2.199. unboxed_closures","language-features/unboxed-closures",[C[808]]],["2.200. unnamed_fields","language-features/unnamed-fields",[C[808]]],["2.201. unsafe_attributes","language-features/unsafe-attributes",[C[808]]],["2.202. unsafe_extern_blocks","language-features/unsafe-extern-blocks",[C[808]]],["2.203. unsized_fn_params","language-features/unsized-fn-params",[C[808]]],["2.204. unsized_locals","language-features/unsized-locals",[C[808]]],["2.205. unsized_tuple_coercion","language-features/unsized-tuple-coercion",[C[808]]],["2.206. used_with_arg","language-features/used-with-arg",[C[808]]],["2.207. wasm_target_feature","language-features/wasm-target-feature",[C[808]]],["2.208. with_negative_coherence","language-features/with-negative-coherence",[C[808]]],["2.209. x86_amx_intrinsics","language-features/x86-amx-intrinsics",[C[808]]],["2.210. xop_target_feature","language-features/xop-target-feature",[C[808]]],["2.211. yeet_expr","language-features/yeet-expr",[C[808]]],[C[809],"library-features",N],["3.1. acceptfilter","library-features/acceptfilter",[C[809]]],["3.2. addr_parse_ascii","library-features/addr-parse-ascii",[C[809]]],["3.3. alloc_error_hook","library-features/alloc-error-hook",[C[809]]],["3.4. alloc_internals","library-features/alloc-internals",[C[809]]],["3.5. alloc_layout_extra","library-features/alloc-layout-extra",[C[809]]],["3.6. allocator_api","library-features/allocator-api",[C[809]]],["3.7. array_chunks","library-features/array-chunks",[C[809]]],["3.8. array_into_iter_constructors","library-features/array-into-iter-constructors",[C[809]]],["3.9. array_ptr_get","library-features/array-ptr-get",[C[809]]],["3.10. array_repeat","library-features/array-repeat",[C[809]]],["3.11. array_try_from_fn","library-features/array-try-from-fn",[C[809]]],["3.12. array_try_map","library-features/array-try-map",[C[809]]],["3.13. array_windows","library-features/array-windows",[C[809]]],["3.14. as_array_of_cells","library-features/as-array-of-cells",[C[809]]],["3.15. ascii_char","library-features/ascii-char",[C[809]]],["3.16. ascii_char_variants","library-features/ascii-char-variants",[C[809]]],["3.17. assert_matches","library-features/assert-matches",[C[809]]],["3.18. async_drop","library-features/async-drop",[C[809]]],["3.19. async_fn_traits","library-features/async-fn-traits",[C[809]]],["3.20. async_gen_internals","library-features/async-gen-internals",[C[809]]],["3.21. async_iter_from_iter","library-features/async-iter-from-iter",[C[809]]],["3.22. async_iterator","library-features/async-iterator",[C[809]]],["3.23. atomic_from_mut","library-features/atomic-from-mut",[C[809]]],["3.24. backtrace_frames","library-features/backtrace-frames",[C[809]]],["3.25. bigint_helper_methods","library-features/bigint-helper-methods",[C[809]]],["3.26. binary_heap_drain_sorted","library-features/binary-heap-drain-sorted",[C[809]]],["3.27. binary_heap_into_iter_sorted","library-features/binary-heap-into-iter-sorted",[C[809]]],["3.28. bound_as_ref","library-features/bound-as-ref",[C[809]]],["3.29. box_into_boxed_slice","library-features/box-into-boxed-slice",[C[809]]],["3.30. box_into_inner","library-features/box-into-inner",[C[809]]],["3.31. btree_cursors","library-features/btree-cursors",[C[809]]],["3.32. btree_extract_if","library-features/btree-extract-if",[C[809]]],["3.33. btreemap_alloc","library-features/btreemap-alloc",[C[809]]],["3.34. buf_read_has_data_left","library-features/buf-read-has-data-left",[C[809]]],["3.35. bufread_skip_until","library-features/bufread-skip-until",[C[809]]],["3.36. build_hasher_default_const_new","library-features/build-hasher-default-const-new",[C[809]]],["3.37. c_size_t","library-features/c-size-t",[C[809]]],["3.38. c_str_module","library-features/c-str-module",[C[809]]],["3.39. c_void_variant","library-features/c-void-variant",[C[809]]],["3.40. can_vector","library-features/can-vector",[C[809]]],["3.41. cell_leak","library-features/cell-leak",[C[809]]],["3.42. cell_update","library-features/cell-update",[C[809]]],["3.43. cfg_accessible","library-features/cfg-accessible",[C[809]]],["3.44. cfg_eval","library-features/cfg-eval",[C[809]]],["3.45. cfg_match","library-features/cfg-match",[C[809]]],["3.46. char_indices_offset","library-features/char-indices-offset",[C[809]]],["3.47. char_internals","library-features/char-internals",[C[809]]],["3.48. char_min","library-features/char-min",[C[809]]],["3.49. clone_to_uninit","library-features/clone-to-uninit",[C[809]]],["3.50. cmp_minmax","library-features/cmp-minmax",[C[809]]],["3.51. coerce_unsized","library-features/coerce-unsized",[C[809]]],["3.52. concat_bytes","library-features/concat-bytes",[C[809]]],["3.53. concat_idents","library-features/concat-idents",[C[809]]],["3.54. const_align_of_val","library-features/const-align-of-val",[C[809]]],["3.55. const_align_of_val_raw","library-features/const-align-of-val-raw",[C[809]]],["3.56. const_align_offset","library-features/const-align-offset",[C[809]]],["3.57. const_alloc_error","library-features/const-alloc-error",[C[809]]],["3.58. const_alloc_layout","library-features/const-alloc-layout",[C[809]]],["3.59. const_arguments_as_str","library-features/const-arguments-as-str",[C[809]]],["3.60. const_array_from_ref","library-features/const-array-from-ref",[C[809]]],["3.61. const_array_into_iter_constructors","library-features/const-array-into-iter-constructors",[C[809]]],["3.62. const_atomic_from_ptr","library-features/const-atomic-from-ptr",[C[809]]],["3.63. const_bigint_helper_methods","library-features/const-bigint-helper-methods",[C[809]]],["3.64. const_binary_heap_new_in","library-features/const-binary-heap-new-in",[C[809]]],["3.65. const_black_box","library-features/const-black-box",[C[809]]],["3.66. const_box","library-features/const-box",[C[809]]],["3.67. const_btree_len","library-features/const-btree-len",[C[809]]],["3.68. const_cell_into_inner","library-features/const-cell-into-inner",[C[809]]],["3.69. const_collections_with_hasher","library-features/const-collections-with-hasher",[C[809]]],["3.70. const_cow_is_borrowed","library-features/const-cow-is-borrowed",[C[809]]],["3.71. const_eval_select","library-features/const-eval-select",[C[809]]],["3.72. const_exact_div","library-features/const-exact-div",[C[809]]],["3.73. const_float_bits_conv","library-features/const-float-bits-conv",[C[809]]],["3.74. const_float_classify","library-features/const-float-classify",[C[809]]],["3.75. const_fmt_arguments_new","library-features/const-fmt-arguments-new",[C[809]]],["3.76. const_format_args","library-features/const-format-args",[C[809]]],["3.77. const_hash","library-features/const-hash",[C[809]]],["3.78. const_heap","library-features/const-heap",[C[809]]],["3.79. const_index_range_slice_index","library-features/const-index-range-slice-index",[C[809]]],["3.80. const_int_from_str","library-features/const-int-from-str",[C[809]]],["3.81. const_intoiterator_identity","library-features/const-intoiterator-identity",[C[809]]],["3.82. const_intrinsic_compare_bytes","library-features/const-intrinsic-compare-bytes",[C[809]]],["3.83. const_intrinsic_copy","library-features/const-intrinsic-copy",[C[809]]],["3.84. const_intrinsic_forget","library-features/const-intrinsic-forget",[C[809]]],["3.85. const_intrinsic_raw_eq","library-features/const-intrinsic-raw-eq",[C[809]]],["3.86. const_ip","library-features/const-ip",[C[809]]],["3.87. const_ipv4","library-features/const-ipv4",[C[809]]],["3.88. const_ipv6","library-features/const-ipv6",[C[809]]],["3.89. const_likely","library-features/const-likely",[C[809]]],["3.90. const_maybe_uninit_array_assume_init","library-features/const-maybe-uninit-array-assume-init",[C[809]]],["3.91. const_maybe_uninit_as_mut_ptr","library-features/const-maybe-uninit-as-mut-ptr",[C[809]]],["3.92. const_maybe_uninit_assume_init","library-features/const-maybe-uninit-assume-init",[C[809]]],["3.93. const_maybe_uninit_uninit_array","library-features/const-maybe-uninit-uninit-array",[C[809]]],["3.94. const_maybe_uninit_write","library-features/const-maybe-uninit-write",[C[809]]],["3.95. const_nonnull_new","library-features/const-nonnull-new",[C[809]]],["3.96. const_num_midpoint","library-features/const-num-midpoint",[C[809]]],["3.97. const_option","library-features/const-option",[C[809]]],["3.98. const_option_ext","library-features/const-option-ext",[C[809]]],["3.99. const_pin","library-features/const-pin",[C[809]]],["3.100. const_pointer_is_aligned","library-features/const-pointer-is-aligned",[C[809]]],["3.101. const_pref_align_of","library-features/const-pref-align-of",[C[809]]],["3.102. const_ptr_as_ref","library-features/const-ptr-as-ref",[C[809]]],["3.103. const_ptr_is_null","library-features/const-ptr-is-null",[C[809]]],["3.104. const_ptr_sub_ptr","library-features/const-ptr-sub-ptr",[C[809]]],["3.105. const_ptr_write","library-features/const-ptr-write",[C[809]]],["3.106. const_range_bounds","library-features/const-range-bounds",[C[809]]],["3.107. const_raw_ptr_comparison","library-features/const-raw-ptr-comparison",[C[809]]],["3.108. const_replace","library-features/const-replace",[C[809]]],["3.109. const_result","library-features/const-result",[C[809]]],["3.110. const_size_of_val","library-features/const-size-of-val",[C[809]]],["3.111. const_size_of_val_raw","library-features/const-size-of-val-raw",[C[809]]],["3.112. const_slice_first_last","library-features/const-slice-first-last",[C[809]]],["3.113. const_slice_first_last_chunk","library-features/const-slice-first-last-chunk",[C[809]]],["3.114. const_slice_flatten","library-features/const-slice-flatten",[C[809]]],["3.115. const_slice_from_mut_ptr_range","library-features/const-slice-from-mut-ptr-range",[C[809]]],["3.116. const_slice_from_ptr_range","library-features/const-slice-from-ptr-range",[C[809]]],["3.117. const_slice_from_raw_parts_mut","library-features/const-slice-from-raw-parts-mut",[C[809]]],["3.118. const_slice_from_ref","library-features/const-slice-from-ref",[C[809]]],["3.119. const_slice_index","library-features/const-slice-index",[C[809]]],["3.120. const_slice_split_at_mut","library-features/const-slice-split-at-mut",[C[809]]],["3.121. const_str_from_raw_parts_mut","library-features/const-str-from-raw-parts-mut",[C[809]]],["3.122. const_str_from_utf8","library-features/const-str-from-utf8",[C[809]]],["3.123. const_str_from_utf8_unchecked_mut","library-features/const-str-from-utf8-unchecked-mut",[C[809]]],["3.124. const_strict_overflow_ops","library-features/const-strict-overflow-ops",[C[809]]],["3.125. const_swap","library-features/const-swap",[C[809]]],["3.126. const_three_way_compare","library-features/const-three-way-compare",[C[809]]],["3.127. const_type_id","library-features/const-type-id",[C[809]]],["3.128. const_type_name","library-features/const-type-name",[C[809]]],["3.129. const_typed_swap","library-features/const-typed-swap",[C[809]]],["3.130. const_ub_checks","library-features/const-ub-checks",[C[809]]],["3.131. const_unicode_case_lookup","library-features/const-unicode-case-lookup",[C[809]]],["3.132. const_unsafecell_get_mut","library-features/const-unsafecell-get-mut",[C[809]]],["3.133. const_waker","library-features/const-waker",[C[809]]],["3.134. container_error_extra","library-features/container-error-extra",[C[809]]],["3.135. context_ext","library-features/context-ext",[C[809]]],["3.136. control_flow_enum","library-features/control-flow-enum",[C[809]]],["3.137. convert_float_to_int","library-features/convert-float-to-int",[C[809]]],["3.138. core_intrinsics","library-features/core-intrinsics",[C[809]]],["3.139. core_io_borrowed_buf","library-features/core-io-borrowed-buf",[C[809]]],["3.140. core_pattern_type","library-features/core-pattern-type",[C[809]]],["3.141. core_pattern_types","library-features/core-pattern-types",[C[809]]],["3.142. core_private_bignum","library-features/core-private-bignum",[C[809]]],["3.143. core_private_diy_float","library-features/core-private-diy-float",[C[809]]],["3.144. coroutine_trait","library-features/coroutine-trait",[C[809]]],["3.145. cow_is_borrowed","library-features/cow-is-borrowed",[C[809]]],["3.146. cstr_bytes","library-features/cstr-bytes",[C[809]]],["3.147. cstr_internals","library-features/cstr-internals",[C[809]]],["3.148. cursor_remaining","library-features/cursor-remaining",[C[809]]],["3.149. deadline_api","library-features/deadline-api",[C[809]]],["3.150. debug_closure_helpers","library-features/debug-closure-helpers",[C[809]]],["3.151. dec2flt","library-features/dec2flt",[C[809]]],["3.152. deref_pure_trait","library-features/deref-pure-trait",[C[809]]],["3.153. derive_clone_copy","library-features/derive-clone-copy",[C[809]]],["3.154. derive_const","library-features/derive-const",[C[809]]],["3.155. derive_eq","library-features/derive-eq",[C[809]]],["3.156. dir_entry_ext2","library-features/dir-entry-ext2",[C[809]]],["3.157. discriminant_kind","library-features/discriminant-kind",[C[809]]],["3.158. dispatch_from_dyn","library-features/dispatch-from-dyn",[C[809]]],["3.159. downcast_unchecked","library-features/downcast-unchecked",[C[809]]],["3.160. drain_keep_rest","library-features/drain-keep-rest",[C[809]]],["3.161. duration_constants","library-features/duration-constants",[C[809]]],["3.162. duration_constructors","library-features/duration-constructors",[C[809]]],["3.163. duration_consts_float","library-features/duration-consts-float",[C[809]]],["3.164. duration_millis_float","library-features/duration-millis-float",[C[809]]],["3.165. duration_units","library-features/duration-units",[C[809]]],["3.166. edition_panic","library-features/edition-panic",[C[809]]],["3.167. effect_types","library-features/effect-types",[C[809]]],["3.168. entry_insert","library-features/entry-insert",[C[809]]],["3.169. error_generic_member_access","library-features/error-generic-member-access",[C[809]]],["3.170. error_iter","library-features/error-iter",[C[809]]],["3.171. error_reporter","library-features/error-reporter",[C[809]]],["3.172. error_type_id","library-features/error-type-id",[C[809]]],["3.173. exact_size_is_empty","library-features/exact-size-is-empty",[C[809]]],["3.174. exclusive_wrapper","library-features/exclusive-wrapper",[C[809]]],["3.175. exit_status_error","library-features/exit-status-error",[C[809]]],["3.176. exitcode_exit_method","library-features/exitcode-exit-method",[C[809]]],["3.177. exposed_provenance","library-features/exposed-provenance",[C[809]]],["3.178. extend_one","library-features/extend-one",[C[809]]],["3.179. extend_one_unchecked","library-features/extend-one-unchecked",[C[809]]],["3.180. extract_if","library-features/extract-if",[C[809]]],["3.181. fd","library-features/fd",[C[809]]],["3.182. fd_read","library-features/fd-read",[C[809]]],["3.183. float_gamma","library-features/float-gamma",[C[809]]],["3.184. float_minimum_maximum","library-features/float-minimum-maximum",[C[809]]],["3.185. float_next_up_down","library-features/float-next-up-down",[C[809]]],["3.186. flt2dec","library-features/flt2dec",[C[809]]],["3.187. fmt_helpers_for_derive","library-features/fmt-helpers-for-derive",[C[809]]],["3.188. fmt_internals","library-features/fmt-internals",[C[809]]],["3.189. fn_ptr_trait","library-features/fn-ptr-trait",[C[809]]],["3.190. fn_traits","library-features/fn-traits",[C[809]]],["3.191. forget_unsized","library-features/forget-unsized",[C[809]]],["3.192. format_args_nl","library-features/format-args-nl",[C[809]]],["3.193. freeze","library-features/freeze",[C[809]]],["3.194. future_join","library-features/future-join",[C[809]]],["3.195. gen_future","library-features/gen-future",[C[809]]],["3.196. generic_assert_internals","library-features/generic-assert-internals",[C[809]]],["3.197. get_many_mut","library-features/get-many-mut",[C[809]]],["3.198. get_mut_unchecked","library-features/get-mut-unchecked",[C[809]]],["3.199. hash_extract_if","library-features/hash-extract-if",[C[809]]],["3.200. hash_raw_entry","library-features/hash-raw-entry",[C[809]]],["3.201. hash_set_entry","library-features/hash-set-entry",[C[809]]],["3.202. hasher_prefixfree_extras","library-features/hasher-prefixfree-extras",[C[809]]],["3.203. hashmap_internals","library-features/hashmap-internals",[C[809]]],["3.204. hint_must_use","library-features/hint-must-use",[C[809]]],["3.205. inplace_iteration","library-features/inplace-iteration",[C[809]]],["3.206. int_roundings","library-features/int-roundings",[C[809]]],["3.207. integer_atomics","library-features/integer-atomics",[C[809]]],["3.208. integer_sign_cast","library-features/integer-sign-cast",[C[809]]],["3.209. internal_impls_macro","library-features/internal-impls-macro",[C[809]]],["3.210. internal_output_capture","library-features/internal-output-capture",[C[809]]],["3.211. io_error_more","library-features/io-error-more",[C[809]]],["3.212. io_error_uncategorized","library-features/io-error-uncategorized",[C[809]]],["3.213. ip","library-features/ip",[C[809]]],["3.214. is_ascii_octdigit","library-features/is-ascii-octdigit",[C[809]]],["3.215. is_none_or","library-features/is-none-or",[C[809]]],["3.216. is_riscv_feature_detected","library-features/is-riscv-feature-detected",[C[809]]],["3.217. is_sorted","library-features/is-sorted",[C[809]]],["3.218. is_val_statically_known","library-features/is-val-statically-known",[C[809]]],["3.219. isqrt","library-features/isqrt",[C[809]]],["3.220. iter_advance_by","library-features/iter-advance-by",[C[809]]],["3.221. iter_array_chunks","library-features/iter-array-chunks",[C[809]]],["3.222. iter_chain","library-features/iter-chain",[C[809]]],["3.223. iter_collect_into","library-features/iter-collect-into",[C[809]]],["3.224. iter_from_coroutine","library-features/iter-from-coroutine",[C[809]]],["3.225. iter_intersperse","library-features/iter-intersperse",[C[809]]],["3.226. iter_is_partitioned","library-features/iter-is-partitioned",[C[809]]],["3.227. iter_map_windows","library-features/iter-map-windows",[C[809]]],["3.228. iter_next_chunk","library-features/iter-next-chunk",[C[809]]],["3.229. iter_order_by","library-features/iter-order-by",[C[809]]],["3.230. iter_partition_in_place","library-features/iter-partition-in-place",[C[809]]],["3.231. iter_repeat_n","library-features/iter-repeat-n",[C[809]]],["3.232. iterator_try_collect","library-features/iterator-try-collect",[C[809]]],["3.233. iterator_try_reduce","library-features/iterator-try-reduce",[C[809]]],["3.234. junction_point","library-features/junction-point",[C[809]]],["3.235. layout_for_ptr","library-features/layout-for-ptr",[C[809]]],["3.236. lazy_cell_into_inner","library-features/lazy-cell-into-inner",[C[809]]],["3.237. liballoc_internals","library-features/liballoc-internals",[C[809]]],["3.238. libstd_sys_internals","library-features/libstd-sys-internals",[C[809]]],["3.239. linked_list_cursors","library-features/linked-list-cursors",[C[809]]],["3.240. linked_list_remove","library-features/linked-list-remove",[C[809]]],["3.241. linked_list_retain","library-features/linked-list-retain",[C[809]]],["3.242. linux_pidfd","library-features/linux-pidfd",[C[809]]],["3.243. local_waker","library-features/local-waker",[C[809]]],["3.244. log_syntax","library-features/log-syntax",[C[809]]],["3.245. map_entry_replace","library-features/map-entry-replace",[C[809]]],["3.246. map_many_mut","library-features/map-many-mut",[C[809]]],["3.247. map_try_insert","library-features/map-try-insert",[C[809]]],["3.248. mapped_lock_guards","library-features/mapped-lock-guards",[C[809]]],["3.249. maybe_uninit_array_assume_init","library-features/maybe-uninit-array-assume-init",[C[809]]],["3.250. maybe_uninit_as_bytes","library-features/maybe-uninit-as-bytes",[C[809]]],["3.251. maybe_uninit_fill","library-features/maybe-uninit-fill",[C[809]]],["3.252. maybe_uninit_slice","library-features/maybe-uninit-slice",[C[809]]],["3.253. maybe_uninit_uninit_array","library-features/maybe-uninit-uninit-array",[C[809]]],["3.254. maybe_uninit_uninit_array_transpose","library-features/maybe-uninit-uninit-array-transpose",[C[809]]],["3.255. maybe_uninit_write_slice","library-features/maybe-uninit-write-slice",[C[809]]],["3.256. mem_copy_fn","library-features/mem-copy-fn",[C[809]]],["3.257. more_float_constants","library-features/more-float-constants",[C[809]]],["3.258. new_range_api","library-features/new-range-api",[C[809]]],["3.259. new_uninit","library-features/new-uninit",[C[809]]],["3.260. non_zero_count_ones","library-features/non-zero-count-ones",[C[809]]],["3.261. nonzero_from_mut","library-features/nonzero-from-mut",[C[809]]],["3.262. nonzero_internals","library-features/nonzero-internals",[C[809]]],["3.263. nonzero_ops","library-features/nonzero-ops",[C[809]]],["3.264. noop_waker","library-features/noop-waker",[C[809]]],["3.265. num_midpoint","library-features/num-midpoint",[C[809]]],["3.266. numfmt","library-features/numfmt",[C[809]]],["3.267. once_cell_get_mut","library-features/once-cell-get-mut",[C[809]]],["3.268. once_cell_try","library-features/once-cell-try",[C[809]]],["3.269. once_cell_try_insert","library-features/once-cell-try-insert",[C[809]]],["3.270. one_sided_range","library-features/one-sided-range",[C[809]]],["3.271. option_get_or_insert_default","library-features/option-get-or-insert-default",[C[809]]],["3.272. option_zip","library-features/option-zip",[C[809]]],["3.273. os_str_display","library-features/os-str-display",[C[809]]],["3.274. os_str_slice","library-features/os-str-slice",[C[809]]],["3.275. os_string_pathbuf_leak","library-features/os-string-pathbuf-leak",[C[809]]],["3.276. panic_abort","library-features/panic-abort",[C[809]]],["3.277. panic_always_abort","library-features/panic-always-abort",[C[809]]],["3.278. panic_backtrace_config","library-features/panic-backtrace-config",[C[809]]],["3.279. panic_can_unwind","library-features/panic-can-unwind",[C[809]]],["3.280. panic_internals","library-features/panic-internals",[C[809]]],["3.281. panic_payload_as_str","library-features/panic-payload-as-str",[C[809]]],["3.282. panic_unwind","library-features/panic-unwind",[C[809]]],["3.283. panic_update_hook","library-features/panic-update-hook",[C[809]]],["3.284. path_add_extension","library-features/path-add-extension",[C[809]]],["3.285. path_file_prefix","library-features/path-file-prefix",[C[809]]],["3.286. pattern","library-features/pattern",[C[809]]],["3.287. peer_credentials_unix_socket","library-features/peer-credentials-unix-socket",[C[809]]],["3.288. pin_deref_mut","library-features/pin-deref-mut",[C[809]]],["3.289. pointer_is_aligned_to","library-features/pointer-is-aligned-to",[C[809]]],["3.290. pointer_like_trait","library-features/pointer-like-trait",[C[809]]],["3.291. portable_simd","library-features/portable-simd",[C[809]]],["3.292. prelude_2024","library-features/prelude-2024",[C[809]]],["3.293. print_internals","library-features/print-internals",[C[809]]],["3.294. proc_macro_def_site","library-features/proc-macro-def-site",[C[809]]],["3.295. proc_macro_diagnostic","library-features/proc-macro-diagnostic",[C[809]]],["3.296. proc_macro_expand","library-features/proc-macro-expand",[C[809]]],["3.297. proc_macro_internals","library-features/proc-macro-internals",[C[809]]],["3.298. proc_macro_quote","library-features/proc-macro-quote",[C[809]]],["3.299. proc_macro_span","library-features/proc-macro-span",[C[809]]],["3.300. proc_macro_tracked_env","library-features/proc-macro-tracked-env",[C[809]]],["3.301. process_exitcode_internals","library-features/process-exitcode-internals",[C[809]]],["3.302. process_internals","library-features/process-internals",[C[809]]],["3.303. profiler_runtime_lib","library-features/profiler-runtime-lib",[C[809]]],["3.304. ptr_alignment_type","library-features/ptr-alignment-type",[C[809]]],["3.305. ptr_as_ref_unchecked","library-features/ptr-as-ref-unchecked",[C[809]]],["3.306. ptr_as_uninit","library-features/ptr-as-uninit",[C[809]]],["3.307. ptr_internals","library-features/ptr-internals",[C[809]]],["3.308. ptr_mask","library-features/ptr-mask",[C[809]]],["3.309. ptr_metadata","library-features/ptr-metadata",[C[809]]],["3.310. ptr_sub_ptr","library-features/ptr-sub-ptr",[C[809]]],["3.311. pub_crate_should_not_need_unstable_attr","library-features/pub-crate-should-not-need-unstable-attr",[C[809]]],["3.312. raw_os_error_ty","library-features/raw-os-error-ty",[C[809]]],["3.313. raw_slice_split","library-features/raw-slice-split",[C[809]]],["3.314. raw_vec_internals","library-features/raw-vec-internals",[C[809]]],["3.315. read_buf","library-features/read-buf",[C[809]]],["3.316. ready_into_inner","library-features/ready-into-inner",[C[809]]],["3.317. receiver_trait","library-features/receiver-trait",[C[809]]],["3.318. reentrant_lock","library-features/reentrant-lock",[C[809]]],["3.319. restricted_std","library-features/restricted-std",[C[809]]],["3.320. result_flattening","library-features/result-flattening",[C[809]]],["3.321. round_char_boundary","library-features/round-char-boundary",[C[809]]],["3.322. rt","library-features/rt",[C[809]]],["3.323. rustc_encodable_decodable","library-features/rustc-encodable-decodable",[C[809]]],["3.324. sealed","library-features/sealed",[C[809]]],["3.325. seek_stream_len","library-features/seek-stream-len",[C[809]]],["3.326. set_ptr_value","library-features/set-ptr-value",[C[809]]],["3.327. setgroups","library-features/setgroups",[C[809]]],["3.328. sgx_platform","library-features/sgx-platform",[C[809]]],["3.329. sized_type_properties","library-features/sized-type-properties",[C[809]]],["3.330. slice_as_chunks","library-features/slice-as-chunks",[C[809]]],["3.331. slice_concat_ext","library-features/slice-concat-ext",[C[809]]],["3.332. slice_concat_trait","library-features/slice-concat-trait",[C[809]]],["3.333. slice_from_ptr_range","library-features/slice-from-ptr-range",[C[809]]],["3.334. slice_index_methods","library-features/slice-index-methods",[C[809]]],["3.335. slice_internals","library-features/slice-internals",[C[809]]],["3.336. slice_iter_mut_as_mut_slice","library-features/slice-iter-mut-as-mut-slice",[C[809]]],["3.337. slice_partition_dedup","library-features/slice-partition-dedup",[C[809]]],["3.338. slice_pattern","library-features/slice-pattern",[C[809]]],["3.339. slice_ptr_get","library-features/slice-ptr-get",[C[809]]],["3.340. slice_range","library-features/slice-range",[C[809]]],["3.341. slice_split_once","library-features/slice-split-once",[C[809]]],["3.342. slice_swap_unchecked","library-features/slice-swap-unchecked",[C[809]]],["3.343. slice_take","library-features/slice-take",[C[809]]],["3.344. solid_ext","library-features/solid-ext",[C[809]]],["3.345. sort_floats","library-features/sort-floats",[C[809]]],["3.346. split_array","library-features/split-array",[C[809]]],["3.347. split_as_slice","library-features/split-as-slice",[C[809]]],["3.348. std_internals","library-features/std-internals",[C[809]]],["3.349. stdarch_arm_feature_detection","library-features/stdarch-arm-feature-detection",[C[809]]],["3.350. stdarch_mips_feature_detection","library-features/stdarch-mips-feature-detection",[C[809]]],["3.351. stdarch_powerpc_feature_detection","library-features/stdarch-powerpc-feature-detection",[C[809]]],["3.352. stdio_makes_pipe","library-features/stdio-makes-pipe",[C[809]]],["3.353. step_trait","library-features/step-trait",[C[809]]],["3.354. str_from_raw_parts","library-features/str-from-raw-parts",[C[809]]],["3.355. str_from_utf16_endian","library-features/str-from-utf16-endian",[C[809]]],["3.356. str_internals","library-features/str-internals",[C[809]]],["3.357. str_lines_remainder","library-features/str-lines-remainder",[C[809]]],["3.358. str_split_inclusive_remainder","library-features/str-split-inclusive-remainder",[C[809]]],["3.359. str_split_remainder","library-features/str-split-remainder",[C[809]]],["3.360. str_split_whitespace_remainder","library-features/str-split-whitespace-remainder",[C[809]]],["3.361. strict_overflow_ops","library-features/strict-overflow-ops",[C[809]]],["3.362. strict_provenance_atomic_ptr","library-features/strict-provenance-atomic-ptr",[C[809]]],["3.363. string_extend_from_within","library-features/string-extend-from-within",[C[809]]],["3.364. string_remove_matches","library-features/string-remove-matches",[C[809]]],["3.365. sync_unsafe_cell","library-features/sync-unsafe-cell",[C[809]]],["3.366. tcp_deferaccept","library-features/tcp-deferaccept",[C[809]]],["3.367. tcp_linger","library-features/tcp-linger",[C[809]]],["3.368. tcp_quickack","library-features/tcp-quickack",[C[809]]],["3.369. tcplistener_into_incoming","library-features/tcplistener-into-incoming",[C[809]]],["3.370. test","library-features/test",[C[809]]],["3.371. thin_box","library-features/thin-box",[C[809]]],["3.372. thread_id_value","library-features/thread-id-value",[C[809]]],["3.373. thread_local_internals","library-features/thread-local-internals",[C[809]]],["3.374. thread_sleep_until","library-features/thread-sleep-until",[C[809]]],["3.375. thread_spawn_unchecked","library-features/thread-spawn-unchecked",[C[809]]],["3.376. trace_macros","library-features/trace-macros",[C[809]]],["3.377. track_path","library-features/track-path",[C[809]]],["3.378. transmutability","library-features/transmutability",[C[809]]],["3.379. trusted_fused","library-features/trusted-fused",[C[809]]],["3.380. trusted_len","library-features/trusted-len",[C[809]]],["3.381. trusted_len_next_unchecked","library-features/trusted-len-next-unchecked",[C[809]]],["3.382. trusted_random_access","library-features/trusted-random-access",[C[809]]],["3.383. trusted_step","library-features/trusted-step",[C[809]]],["3.384. try_find","library-features/try-find",[C[809]]],["3.385. try_reserve_kind","library-features/try-reserve-kind",[C[809]]],["3.386. try_trait_v2","library-features/try-trait-v2",[C[809]]],["3.387. try_trait_v2_residual","library-features/try-trait-v2-residual",[C[809]]],["3.388. try_trait_v2_yeet","library-features/try-trait-v2-yeet",[C[809]]],["3.389. try_with_capacity","library-features/try-with-capacity",[C[809]]],["3.390. tuple_trait","library-features/tuple-trait",[C[809]]],["3.391. type_ascription","library-features/type-ascription",[C[809]]],["3.392. ub_checks","library-features/ub-checks",[C[809]]],["3.393. uefi_std","library-features/uefi-std",[C[809]]],["3.394. unchecked_neg","library-features/unchecked-neg",[C[809]]],["3.395. unchecked_shifts","library-features/unchecked-shifts",[C[809]]],["3.396. unicode_internals","library-features/unicode-internals",[C[809]]],["3.397. unique_rc_arc","library-features/unique-rc-arc",[C[809]]],["3.398. unix_file_vectored_at","library-features/unix-file-vectored-at",[C[809]]],["3.399. unix_set_mark","library-features/unix-set-mark",[C[809]]],["3.400. unix_socket_ancillary_data","library-features/unix-socket-ancillary-data",[C[809]]],["3.401. unix_socket_peek","library-features/unix-socket-peek",[C[809]]],["3.402. unsafe_cell_from_mut","library-features/unsafe-cell-from-mut",[C[809]]],["3.403. unsafe_pin_internals","library-features/unsafe-pin-internals",[C[809]]],["3.404. unsize","library-features/unsize",[C[809]]],["3.405. unwrap_infallible","library-features/unwrap-infallible",[C[809]]],["3.406. update_panic_count","library-features/update-panic-count",[C[809]]],["3.407. utf16_extra","library-features/utf16-extra",[C[809]]],["3.408. utf16_extra_const","library-features/utf16-extra-const",[C[809]]],["3.409. variant_count","library-features/variant-count",[C[809]]],["3.410. vec_into_raw_parts","library-features/vec-into-raw-parts",[C[809]]],["3.411. vec_pop_if","library-features/vec-pop-if",[C[809]]],["3.412. vec_push_within_capacity","library-features/vec-push-within-capacity",[C[809]]],["3.413. vec_split_at_spare","library-features/vec-split-at-spare",[C[809]]],["3.414. waker_getters","library-features/waker-getters",[C[809]]],["3.415. wasi_ext","library-features/wasi-ext",[C[809]]],["3.416. windows_by_handle","library-features/windows-by-handle",[C[809]]],["3.417. windows_c","library-features/windows-c",[C[809]]],["3.418. windows_change_time","library-features/windows-change-time",[C[809]]],["3.419. windows_handle","library-features/windows-handle",[C[809]]],["3.420. windows_net","library-features/windows-net",[C[809]]],["3.421. windows_process_exit_code_from","library-features/windows-process-exit-code-from",[C[809]]],["3.422. windows_process_extensions_async_pipes","library-features/windows-process-extensions-async-pipes",[C[809]]],["3.423. windows_process_extensions_force_quotes","library-features/windows-process-extensions-force-quotes",[C[809]]],["3.424. windows_process_extensions_main_thread_handle","library-features/windows-process-extensions-main-thread-handle",[C[809]]],["3.425. windows_process_extensions_raw_attribute","library-features/windows-process-extensions-raw-attribute",[C[809]]],["3.426. windows_process_extensions_show_window","library-features/windows-process-extensions-show-window",[C[809]]],["3.427. windows_stdio","library-features/windows-stdio",[C[809]]],["3.428. wrapping_int_impl","library-features/wrapping-int-impl",[C[809]]],["3.429. wrapping_next_power_of_two","library-features/wrapping-next-power-of-two",[C[809]]],["3.430. write_all_vectored","library-features/write-all-vectored",[C[809]]],["3.431. yeet_desugar_details","library-features/yeet-desugar-details",[C[809]]]]},{"name":"Rust bindgen User Guide","url":"https://rust-lang.github.io/rust-bindgen/","pages":[[C[52],C[47],N],["2. Requirements","requirements",N],[C[810],"library-usage",N],[C[811],"tutorial-0",[C[810]]],["3.1.1. Add bindgen as a Build Dependency","tutorial-1",[C[810],C[811]]],["3.1.2. Create a wrapper.h Header","tutorial-2",[C[810],C[811]]],["3.1.3. Create a build.rs File","tutorial-3",[C[810],C[811]]],["3.1.4. Include the Generated Bindings in src/lib.rs","tutorial-4",[C[810],C[811]]],["3.1.5. Write a Sanity Test","tutorial-5",[C[810],C[811]]],["3.1.6. Publish Your Crate!","tutorial-6",[C[810],C[811]]],["3.2. Bindings for non-system libraries","non-system-libraries",[C[810]]],["4. Command Line Usage","command-line-usage",N],[C[812],"customizing-generated-bindings",N],["5.1. Allowlisting","allowlisting",[C[812]]],["5.2. Blocklisting","blocklisting",[C[812]]],["5.3. Treating a Type as an Opaque Blob of Bytes","opaque",[C[812]]],["5.4. Replacing One Type with Another","replacing-types",[C[812]]],["5.5. Preventing the Derivation of Copy and Clone","nocopy",[C[812]]],["5.6. Preventing the Derivation of Debug","nodebug",[C[812]]],["5.7. Preventing the Derivation of Default","nodefault",[C[812]]],["5.8. Annotating types with #[must-use]","must-use-types",[C[812]]],["5.9. Field visibility",C[899],[C[812]]],["5.10. Code formatting","code-formatting",[C[812]]],["6. Generating Bindings to C++","cpp",N],["7. Generating Bindings to Objective-c","objc",N],["8. Using Unions","using-unions",N],["9. Using Bitfields","using-bitfields",N],["10. Using Flexible Array Members","using-fam",N],["11. FAQ","faq",N]]},{"name":"The wasm-bindgen Guide","url":"https://rustwasm.github.io/docs/wasm-bindgen/","pages":[[C[26],C[47],N],[C[813],"examples/index",N],["1.1. Hello, World!","examples/hello-world",[C[813]]],["1.2. Using console.log","examples/console-log",[C[813]]],["1.3. Small wasm files","examples/add",[C[813]]],["1.4. Without a Bundler","examples/without-a-bundler",[C[813]]],["1.5. Synchronous Instantiation","examples/synchronous-instantiation",[C[813]]],["1.6. Converting WebAssembly to JS","examples/wasm2js",[C[813]]],["1.7. Importing functions from JS","examples/import-js",[C[813]]],["1.8. Working with char","examples/char",[C[813]]],["1.9. js-sys: WebAssembly in WebAssembly","examples/wasm-in-wasm",[C[813]]],["1.10. web-sys: DOM hello world","examples/dom",[C[813]]],["1.11. web-sys: Closures","examples/closures",[C[813]]],["1.12. web-sys: performance.now","examples/performance",[C[813]]],["1.13. web-sys: using fetch","examples/fetch",[C[813]]],["1.14. web-sys: Weather report","examples/weather_report",[C[813]]],["1.15. web-sys: canvas hello world","examples/2d-canvas",[C[813]]],["1.16. web-sys: canvas Julia set","examples/julia",[C[813]]],["1.17. web-sys: WebAudio","examples/web-audio",[C[813]]],["1.18. web-sys: WebGL","examples/webgl",[C[813]]],["1.19. web-sys: WebSockets","examples/websockets",[C[813]]],["1.20. web-sys: WebRTC DataChannel","examples/webrtc_datachannel",[C[813]]],["1.21. web-sys: requestAnimationFrame","examples/request-animation-frame",[C[813]]],["1.22. web-sys: A Simple Paint Program","examples/paint",[C[813]]],["1.23. web-sys: Wasm in Web Worker","examples/wasm-in-web-worker",[C[813]]],["1.24. Parallel Raytracing","examples/raytrace",[C[813]]],["1.25. Wasm Audio Worklet","examples/wasm-audio-worklet",[C[813]]],["1.26. web-sys: A TODO MVC App","examples/todomvc",[C[813]]],[C[814],C[50],N],["2.1. Deployment","reference/deployment",[C[814]]],["2.2. JS snippets","reference/js-snippets",[C[814]]],["2.3. Static JS Objects","reference/static-js-objects",[C[814]]],["2.4. Passing Rust Closures to JS","reference/passing-rust-closures-to-js",[C[814]]],["2.5. Receiving JS Closures in Rust","reference/receiving-js-closures-in-rust",[C[814]]],["2.6. Promises and Futures","reference/js-promises-and-rust-futures",[C[814]]],["2.7. Iterating over JS Values","reference/iterating-over-js-values",[C[814]]],["2.8. Arbitrary Data with Serde","reference/arbitrary-data-with-serde",[C[814]]],["2.9. Accessing Properties of Untyped JS Values","reference/accessing-properties-of-untyped-js-values",[C[814]]],["2.10. Working with Duck-Typed Interfaces","reference/working-with-duck-typed-interfaces",[C[814]]],["2.11. Command Line Interface","reference/cli",[C[814]]],["2.12. Optimizing for Size","reference/optimize-size",[C[814]]],["2.13. Supported Rust Targets","reference/rust-targets",[C[814]]],["2.14. Supported Browsers","reference/browser-support",[C[814]]],["2.15. Support for Weak References","reference/weak-references",[C[814]]],["2.16. Support for Reference Types","reference/reference-types",[C[814]]],[C[815],"reference/types",[C[814]]],["2.17.1. Imported JavaScript Types","reference/types/imported-js-types",[C[814],C[815]]],["2.17.2. Exported Rust Types","reference/types/exported-rust-types",[C[814],C[815]]],["2.17.3. JsValue","reference/types/jsvalue",[C[814],C[815]]],["2.17.4. Box<[T]> and Vec","reference/types/boxed-slices",[C[814],C[815]]],["2.17.5. *const T and *mut T","reference/types/pointers",[C[814],C[815]]],["2.17.6. NonNull","reference/types/non-null",[C[814],C[815]]],["2.17.7. Numbers","reference/types/numbers",[C[814],C[815]]],["2.17.8. bool","reference/types/bool",[C[814],C[815]]],["2.17.9. char","reference/types/char",[C[814],C[815]]],["2.17.10. str","reference/types/str",[C[814],C[815]]],["2.17.11. String","reference/types/string",[C[814],C[815]]],["2.17.12. Number Slices","reference/types/number-slices",[C[814],C[815]]],["2.17.13. Boxed Number Slices","reference/types/boxed-number-slices",[C[814],C[815]]],["2.17.14. Result","reference/types/result",[C[814],C[815]]],[C[816],"reference/attributes/index",[C[814]]],[C[817],"reference/attributes/on-js-imports/index",[C[814],C[816]]],["2.18.1.1. catch","reference/attributes/on-js-imports/catch",[C[814],C[816],C[817]]],["2.18.1.2. constructor","reference/attributes/on-js-imports/constructor",[C[814],C[816],C[817]]],["2.18.1.3. extends","reference/attributes/on-js-imports/extends",[C[814],C[816],C[817]]],["2.18.1.4. getter and setter","reference/attributes/on-js-imports/getter-and-setter",[C[814],C[816],C[817]]],["2.18.1.5. final","reference/attributes/on-js-imports/final",[C[814],C[816],C[817]]],["2.18.1.6. indexing_getter, indexing_setter, and indexing_deleter","reference/attributes/on-js-imports/indexing-getter-setter-deleter",[C[814],C[816],C[817]]],["2.18.1.7. js_class = \"Blah\"","reference/attributes/on-js-imports/js_class",[C[814],C[816],C[817]]],["2.18.1.8. js_name","reference/attributes/on-js-imports/js_name",[C[814],C[816],C[817]]],["2.18.1.9. js_namespace","reference/attributes/on-js-imports/js_namespace",[C[814],C[816],C[817]]],["2.18.1.10. method","reference/attributes/on-js-imports/method",[C[814],C[816],C[817]]],["2.18.1.11. module = \"blah\"","reference/attributes/on-js-imports/module",[C[814],C[816],C[817]]],["2.18.1.12. raw_module = \"blah\"","reference/attributes/on-js-imports/raw_module",[C[814],C[816],C[817]]],["2.18.1.13. no_deref","reference/attributes/on-js-imports/no_deref",[C[814],C[816],C[817]]],["2.18.1.14. static_method_of = Blah","reference/attributes/on-js-imports/static_method_of",[C[814],C[816],C[817]]],["2.18.1.15. structural","reference/attributes/on-js-imports/structural",[C[814],C[816],C[817]]],["2.18.1.16. typescript_type","reference/attributes/on-js-imports/typescript_type",[C[814],C[816],C[817]]],["2.18.1.17. variadic","reference/attributes/on-js-imports/variadic",[C[814],C[816],C[817]]],["2.18.1.18. vendor_prefix","reference/attributes/on-js-imports/vendor_prefix",[C[814],C[816],C[817]]],[C[818],"reference/attributes/on-rust-exports/index",[C[814],C[816]]],["2.18.2.1. constructor","reference/attributes/on-rust-exports/constructor",[C[814],C[816],C[818]]],["2.18.2.2. js_name = Blah","reference/attributes/on-rust-exports/js_name",[C[814],C[816],C[818]]],["2.18.2.3. js_class = Blah","reference/attributes/on-rust-exports/js_class",[C[814],C[816],C[818]]],["2.18.2.4. readonly","reference/attributes/on-rust-exports/readonly",[C[814],C[816],C[818]]],["2.18.2.5. skip","reference/attributes/on-rust-exports/skip",[C[814],C[816],C[818]]],["2.18.2.6. skip_jsdoc","reference/attributes/on-rust-exports/skip_jsdoc",[C[814],C[816],C[818]]],["2.18.2.7. start","reference/attributes/on-rust-exports/start",[C[814],C[816],C[818]]],["2.18.2.8. main","reference/attributes/on-rust-exports/main",[C[814],C[816],C[818]]],["2.18.2.9. typescript_custom_section","reference/attributes/on-rust-exports/typescript_custom_section",[C[814],C[816],C[818]]],["2.18.2.10. getter and setter","reference/attributes/on-rust-exports/getter-and-setter",[C[814],C[816],C[818]]],["2.18.2.11. inspectable","reference/attributes/on-rust-exports/inspectable",[C[814],C[816],C[818]]],["2.18.2.12. skip_typescript","reference/attributes/on-rust-exports/skip_typescript",[C[814],C[816],C[818]]],["2.18.2.13. getter_with_clone","reference/attributes/on-rust-exports/getter_with_clone",[C[814],C[816],C[818]]],[C[819],"web-sys/index",N],["3.1. Using web-sys","web-sys/using-web-sys",[C[819]]],["3.2. Cargo Features","web-sys/cargo-features",[C[819]]],["3.3. Function Overloads","web-sys/function-overloads",[C[819]]],["3.4. Type Translations","web-sys/type-translations",[C[819]]],["3.5. Inheritance","web-sys/inheritance",[C[819]]],["3.6. Unstable APIs","web-sys/unstable-apis",[C[819]]],[C[820],"wasm-bindgen-test/index",N],["4.1. Usage","wasm-bindgen-test/usage",[C[820]]],["4.2. Writing Asynchronous Tests","wasm-bindgen-test/asynchronous-tests",[C[820]]],["4.3. Testing in Headless Browsers","wasm-bindgen-test/browsers",[C[820]]],["4.4. Continuous Integration","wasm-bindgen-test/continuous-integration",[C[820]]],["4.5. Coverage (Experimental)","wasm-bindgen-test/coverage",[C[820]]],[C[821],"contributing/index",N],["5.1. Testing","contributing/testing",[C[821]]],[C[822],"contributing/design/index",[C[821]]],["5.2.1. JS Objects in Rust","contributing/design/js-objects-in-rust",[C[821],C[822]]],["5.2.2. Exporting a function to JS","contributing/design/exporting-rust",[C[821],C[822]]],["5.2.3. Exporting a struct to JS","contributing/design/exporting-rust-struct",[C[821],C[822]]],["5.2.4. Importing a function from JS","contributing/design/importing-js",[C[821],C[822]]],["5.2.5. Importing a class from JS","contributing/design/importing-js-struct",[C[821],C[822]]],["5.2.6. Rust Type conversions","contributing/design/rust-type-conversions",[C[821],C[822]]],["5.2.7. Types in wasm-bindgen","contributing/design/describe",[C[821],C[822]]],[C[823],"contributing/js-sys/index",[C[821]]],["5.3.1. Testing","contributing/js-sys/testing",[C[821],C[823]]],["5.3.2. Adding More APIs","contributing/js-sys/adding-more-apis",[C[821],C[823]]],[C[824],"contributing/web-sys/index",[C[821]]],["5.4.1. Overview","contributing/web-sys/overview",[C[821],C[824]]],["5.4.2. Testing","contributing/web-sys/testing",[C[821],C[824]]],["5.4.3. Logging","contributing/web-sys/logging",[C[821],C[824]]],["5.4.4. Supporting More Web APIs","contributing/web-sys/supporting-more-web-apis",[C[821],C[824]]],["5.5. Publishing","contributing/publishing",[C[821]]],["5.6. Team","contributing/team",[C[821]]]]},{"name":"Rust API Guidelines","url":"https://rust-lang.github.io/api-guidelines/","pages":[["About","about",N],["Checklist","checklist",N],["1. Naming","naming",N],["2. Interoperability","interoperability",N],[C[777],"macros",N],["4. Documentation",C[900],N],["5. Predictability","predictability",N],["6. Flexibility","flexibility",N],["7. Type safety","type-safety",N],["8. Dependability","dependability",N],["9. Debuggability","debuggability",N],["10. Future proofing","future-proofing",N],["11. Necessities","necessities",N],["External links","external-links",N]]},{"name":"Rust Fuzz Book","url":"https://rust-fuzz.github.io/book/","pages":[[C[26],C[47],N],[C[825],"cargo-fuzz",N],["1.1. Setup","cargo-fuzz/setup",[C[825]]],["1.2. Tutorial","cargo-fuzz/tutorial",[C[825]]],["1.3. Guide","cargo-fuzz/guide",[C[825]]],["1.4. Structure-Aware Fuzzing","cargo-fuzz/structure-aware-fuzzing",[C[825]]],["1.5. Coverage","cargo-fuzz/coverage",[C[825]]],["1.6. Targets","cargo-fuzz/targets",[C[825]]],[C[826],"afl",N],["2.1. Setup","afl/setup",[C[826]]],["2.2. Tutorial","afl/tutorial",[C[826]]],["2.3. Installing from source","afl/installing-from-source",[C[826]]],["3. Trophy case","trophy-case",N]]},{"name":"Rust Forge Book","url":"https://forge.rust-lang.org/","pages":[["Overview","index",N],[C[827],"platforms/index",N],["Twitter","platforms/twitter",[C[827]]],["Discord","platforms/discord",[C[827]]],["Email","platforms/email",[C[827]]],["GitHub","platforms/github",[C[827]]],["Zulip","platforms/zulip",[C[827]]],[C[836],"platforms/zulip/moderation",[C[827],"Zulip"]],["Blogs","platforms/blogs",[C[827]]],["Calendars","platforms/calendars",[C[827]]],[C[828],"triagebot/index",N],["Agenda Generator","triagebot/agenda",[C[828]]],["Issue Assignment","triagebot/issue-assignment",[C[828]]],["PR Assignment","triagebot/pr-assignment",[C[828]]],["Tracking PR assignment","triagebot/pr-assignment-tracking",[C[828]]],["Autolabels","triagebot/autolabels",[C[828]]],["Close","triagebot/close",[C[828]]],["Documentation Updates","triagebot/doc-updates",[C[828]]],["GitHub Releases","triagebot/github-releases",[C[828]]],["Glacier","triagebot/glacier",[C[828]]],["Issue Transfer","triagebot/transfer",[C[828]]],["Labeling","triagebot/labeling",[C[828]]],["Major Changes","triagebot/major-changes",[C[828]]],["Mentions","triagebot/mentions",[C[828]]],["No Merge Policy","triagebot/no-merge",[C[828]]],["Nominate","triagebot/nominate",[C[828]]],["Note","triagebot/note",[C[828]]],["Notifications","triagebot/notifications",[C[828]]],["Pinging","triagebot/pinging",[C[828]]],["Requesting Prioritization","triagebot/requesting-prioritization",[C[828]]],["Review Changes Requested","triagebot/review-submitted",[C[828]]],["Review Requested","triagebot/review-requested",[C[828]]],["Rustc Commit Tracking","triagebot/rustc-commit-list",[C[828]]],["Shortcuts","triagebot/shortcuts",[C[828]]],["Triagebot Dashboard","triagebot/triage-dashboard",[C[828]]],["Zulip Meeting Management","triagebot/zulip-meeting",[C[828]]],["Zulip Notifications","triagebot/zulip-notifications",[C[828]]],[C[829],"community/index",N],["State of Rust Survey FAQ","community/survey-faq",[C[829]]],[C[830],"compiler/index",N],[C[831],"compiler/cross-compilation/index",[C[830]]],["Windows","compiler/cross-compilation/windows",[C[830],C[831]]],["Cross-team Collaboration","compiler/cross-team-collaboration",[C[830]]],["Review policies","compiler/reviews",[C[830]]],["So you want to add a new option to rustc?","compiler/new_option",[C[830]]],["Major Change Proposals","compiler/mcp",[C[830]]],["Membership","compiler/membership",[C[830]]],[C[832],"compiler/prioritization",[C[830]]],["Procedure","compiler/prioritization/procedure",[C[830],C[832]]],["Priority Levels","compiler/prioritization/priority-levels",[C[830],C[832]]],["Notification groups","compiler/notification-groups",[C[830]]],["Triage Meeting","compiler/triage-meeting",[C[830]]],[C[833],"compiler/steering-meeting",[C[830]]],["Submitting a proposal","compiler/steering-meeting/submit",[C[830],C[833]]],["How to run the planning meeting","compiler/steering-meeting/how-to-run-planning",[C[830],C[833]]],["How to run a design meeting","compiler/steering-meeting/how-to-run-design",[C[830],C[833]]],[C[834],"crates-io/index",N],["Crate removal","crates-io/crate-removal",[C[834]]],["Database maintenance","crates-io/db-maintenance",[C[834]]],["docs.rs","docs-rs/index",N],["Adding dependencies to the build environment","docs-rs/add-dependencies",["docs.rs"]],["Self-hosting a docs.rs instance","docs-rs/self-hosting",["docs.rs"]],["Maintenance procedures","docs-rs/maintenance",["docs.rs"]],[C[835],"governance/index",N],["Leadership Council","governance/council",[C[835]]],[C[836],"governance/moderation",[C[835]]],[C[838],"policies/index",N],["Crate ownership policy","policies/crate-ownership",[C[838]]],[C[837],"infra/index",N],["Other Installation Methods","infra/other-installation-methods",[C[837]]],["Archive of Rust Stable Standalone Installers","infra/archive-stable-version-installers",[C[837]]],["Release Channel Layout","infra/channel-layout",[C[837]]],["Service Infrastructure","infra/service-infrastructure",[C[837]]],["Team Maintenance","infra/team-maintenance",[C[837]]],["The Toolstate System","infra/toolstate",[C[837]]],[C[838],"infra/policies/index",[C[837]]],["Broken nightlies","infra/policies/broken-nightlies",[C[837],C[838]]],[C[839],"infra/guidelines/index",[C[837]]],["Static websites","infra/guidelines/static-websites",[C[837],C[839]]],[C[840],"infra/docs/index",[C[837]]],["AWS access for team members","infra/docs/aws-access",[C[837],C[840]]],["AWS access management","infra/docs/aws-access-management",[C[837],C[840]]],["AWS regions","infra/docs/aws-regions",[C[837],C[840]]],["Bastion server","infra/docs/bastion",[C[837],C[840]]],["Bors","infra/docs/bors",[C[837],C[840]]],["CDN","infra/docs/cdn",[C[837],C[840]]],["Crater agents","infra/docs/crater-agents",[C[837],C[840]]],["Custom GitHub Actions runners","infra/docs/gha-self-hosted",[C[837],C[840]]],["Dev Desktops","infra/docs/dev-desktop",[C[837],C[840]]],["GitHub App for dev-desktops","infra/docs/dev-desktop-github-app",[C[837],C[840]]],["Discord moderation bot","infra/docs/discord-mods-bot",[C[837],C[840]]],["Domain names and DNS","infra/docs/dns",[C[837],C[840]]],["docs.rs","infra/docs/docs-rs",[C[837],C[840]]],["ECS services management","infra/docs/ecs-services",[C[837],C[840]]],["Monitoring","infra/docs/monitoring",[C[837],C[840]]],["rust-bots server","infra/docs/rust-bots",[C[837],C[840]]],["rust-lang/rust CI","infra/docs/rustc-ci",[C[837],C[840]]],["Sentry","infra/docs/sentry",[C[837],C[840]]],[C[841],"lang/index",N],["RFC Merge Procedure","lang/rfc-merge-procedure",[C[841]]],["Triage Meeting Procedure","lang/triage-meeting-procedure",[C[841]]],["Libs","libs/index",N],["Maintaining the standard library","libs/maintaining-std",["Libs"]],[C[842],"release/index",N],["Backporting","release/backporting",[C[842]]],["Preparing Release Notes","release/release-notes",[C[842]]],["Release Process","release/process",[C[842]]],["Rollup Procedure","release/rollups",[C[842]]],["Triage Procedure","release/triage-procedure",[C[842]]],["Issue Triaging","release/issue-triaging",[C[842]]],["Triaging Crater Runs","release/crater",[C[842]]],["Edition Releases","editions/edition-releases",N],["Archive","archive/index",N],["Friends of the Tree","archive/fott",["Archive"]],["Release History","archive/release-history",["Archive"]]]},{"name":"Rust Chalk Book","url":"https://rust-lang.github.io/chalk/book/","pages":[[C[843],"what_is_chalk",N],["1.1. Walkthrough","what_is_chalk/walkthrough",[C[843]]],["1.2. Crates","what_is_chalk/crates",[C[843]]],["1.3. REPL","what_is_chalk/repl",[C[843]]],["2. Contribution guide","contribution_guide",N],[C[844],"types",N],["3.1. The Interner","types/role_of_interner",[C[844]]],[C[845],"types/rust_types",[C[844]]],["3.2.1. Alias types","types/rust_types/alias",[C[844],C[845]]],["3.2.2. Application types","types/rust_types/application_ty",[C[844],C[845]]],["3.3. Rust lifetimes","types/rust_lifetimes",[C[844]]],[C[846],"types/operations",[C[844]]],["3.4.1. TypeFoldable and the TypeFolder trait","types/operations/fold",[C[844],C[846]]],[C[847],"clauses",N],["4.1. Goals and clauses","clauses/goals_and_clauses",[C[847]]],["4.2. Type equality and unification","clauses/type_equality",[C[847]]],["4.3. Implied bounds","clauses/implied_bounds",[C[847]]],["4.4. Lowering rules","clauses/lowering_rules",[C[847]]],["4.5. Opaque types (impl Trait)","clauses/opaque_types",[C[847]]],["4.6. Well known traits","clauses/well_known_traits",[C[847]]],["4.7. Well-formedness checking","clauses/wf",[C[847]]],["4.8. Coherence","clauses/coherence",[C[847]]],[C[848],"canonical_queries",N],["5.1. Canonicalization","canonical_queries/canonicalization",[C[848]]],[C[849],"engine",N],["6.1. Major concepts","engine/major_concepts",[C[849]]],[C[850],"engine/logic",[C[849]]],["6.2.1. Coinduction","engine/logic/coinduction",[C[849],C[850]]],["6.3. SLG Solver","engine/slg",[C[849]]],[C[851],"recursive",N],["7.1. The stack","recursive/stack",[C[851]]],["7.2. Inductive cycles","recursive/inductive_cycles",[C[851]]],["7.3. The search graph and caching","recursive/search_graph",[C[851]]],["7.4. Coinduction","recursive/coinduction",[C[851]]],["Appendix A: Glossary and terminology",C[860],N],["Appendix B: Bibliography","bibliography",N],["Appendix C: Incomplete chapters","todo",N],["Appendix D: Publishing Chalk","publishing",N]]},{"name":"Rust Performance Book","url":"https://nnethercote.github.io/perf-book/","pages":[["Title Page",C[852],N],[C[52],C[47],N],["2. Benchmarking","benchmarking",N],["3. Build Configuration","build-configuration",N],["4. Linting","linting",N],["5. Profiling",C[853],N],["6. Inlining","inlining",N],["7. Hashing","hashing",N],["8. Heap Allocations","heap-allocations",N],["9. Type Sizes","type-sizes",N],["10. Standard Library Types","standard-library-types",N],["11. Iterators",C[894],N],["12. Bounds Checks","bounds-checks",N],["13. I/O","io",N],["14. Logging and Debugging","logging-and-debugging",N],["15. Wrapper Types","wrapper-types",N],["16. Machine Code","machine-code",N],["17. Parallelism","parallelism",N],["18. General Tips","general-tips",N],["19. Compile Times","compile-times",N]]},{"name":"mdBook Documentation","url":"https://rust-lang.github.io/mdBook/","pages":[[C[26],"index",N],["1. Installation","guide/installation",N],["2. Reading Books","guide/reading",N],["3. Creating a Book","guide/creating",N],[C[854],"cli/index",N],["4.1. init","cli/init",[C[854]]],[C[855],"cli/build",[C[854]]],["4.3. watch","cli/watch",[C[854]]],["4.4. serve","cli/serve",[C[854]]],["4.5. test","cli/test",[C[854]]],["4.6. clean","cli/clean",[C[854]]],["4.7. completions","cli/completions",[C[854]]],[C[856],"format/index",N],["5.1. SUMMARY.md","format/summary",[C[856]]],[C[857],"format/configuration/index",[C[856]]],["5.2.1. General","format/configuration/general",[C[856],C[857]]],["5.2.2. Preprocessors","format/configuration/preprocessors",[C[856],C[857]]],["5.2.3. Renderers","format/configuration/renderers",[C[856],C[857]]],["5.2.4. Environment Variables","format/configuration/environment-variables",[C[856],C[857]]],[C[858],"format/theme/index",[C[856]]],["5.3.1. index.hbs","format/theme/index-hbs",[C[856],C[858]]],["5.3.2. Syntax highlighting","format/theme/syntax-highlighting",[C[856],C[858]]],["5.3.3. Editor","format/theme/editor",[C[856],C[858]]],["5.4. MathJax Support","format/mathjax",[C[856]]],["5.5. mdBook-specific features","format/mdbook",[C[856]]],["5.6. Markdown","format/markdown",[C[856]]],["6. Continuous Integration","continuous-integration",N],[C[859],"for_developers/index",N],["7.1. Preprocessors","for_developers/preprocessors",[C[859]]],["7.2. Alternative Backends","for_developers/backends",[C[859]]],["Contributors","misc/contributors",N]]},{"name":"Rust's Unsafe Code Guidelines Reference","url":"https://rust-lang.github.io/unsafe-code-guidelines/","pages":[[C[52],C[47],N],["2. Glossary",C[860],N],[C[861],"layout",N],["3.1. Structs and tuples","layout/structs-and-tuples",[C[861]]],["3.2. Scalars","layout/scalars",[C[861]]],["3.3. Enums","layout/enums",[C[861]]],["3.4. Unions","layout/unions",[C[861]]],["3.5. Pointers","layout/pointers",[C[861]]],["3.6. Function pointers","layout/function-pointers",[C[861]]],["3.7. Arrays and Slices","layout/arrays-and-slices",[C[861]]],["3.8. Packed SIMD vectors","layout/packed-simd-vectors",[C[861]]],[C[862],"validity",N],["4.1. Unions","validity/unions",[C[862]]],["4.2. Function Pointers","validity/function-pointers",[C[862]]],[C[863],"optimizations",N],["5.1. Return value optimization","optimizations/return_value_optimization",[C[863]]]]},{"name":"Rust Design Patterns","url":"https://rust-unofficial.github.io/patterns/","pages":[[C[52],"intro",N],["1.1. Translations","translations",[C[52]]],[C[864],"idioms/index",N],["2.1. Use borrowed types for arguments","idioms/coercion-arguments",[C[864]]],["2.2. Concatenating Strings with format!","idioms/concat-format",[C[864]]],["2.3. Constructor","idioms/ctor",[C[864]]],["2.4. The Default Trait","idioms/default",[C[864]]],["2.5. Collections Are Smart Pointers","idioms/deref",[C[864]]],["2.6. Finalisation in Destructors","idioms/dtor-finally",[C[864]]],["2.7. mem::{take(_), replace(_)}","idioms/mem-replace",[C[864]]],["2.8. On-Stack Dynamic Dispatch","idioms/on-stack-dyn-dispatch",[C[864]]],[C[865],"idioms/ffi/intro",[C[864]]],["2.9.1. Idiomatic Errors","idioms/ffi/errors",[C[864],C[865]]],["2.9.2. Accepting Strings","idioms/ffi/accepting-strings",[C[864],C[865]]],["2.9.3. Passing Strings","idioms/ffi/passing-strings",[C[864],C[865]]],["2.10. Iterating over an Option","idioms/option-iter",[C[864]]],["2.11. Pass Variables to Closure","idioms/pass-var-to-closure",[C[864]]],["2.12. Privacy For Extensibility","idioms/priv-extend",[C[864]]],["2.13. Easy doc initialization","idioms/rustdoc-init",[C[864]]],["2.14. Temporary mutability","idioms/temporary-mutability",[C[864]]],["2.15. Return consumed arg on error","idioms/return-consumed-arg-on-error",[C[864]]],[C[866],"patterns/index",N],[C[867],"patterns/behavioural/intro",[C[866]]],["3.1.1. Command","patterns/behavioural/command",[C[866],C[867]]],["3.1.2. Interpreter","patterns/behavioural/interpreter",[C[866],C[867]]],["3.1.3. Newtype","patterns/behavioural/newtype",[C[866],C[867]]],["3.1.4. RAII Guards","patterns/behavioural/RAII",[C[866],C[867]]],["3.1.5. Strategy","patterns/behavioural/strategy",[C[866],C[867]]],["3.1.6. Visitor","patterns/behavioural/visitor",[C[866],C[867]]],[C[868],"patterns/creational/intro",[C[866]]],["3.2.1. Builder","patterns/creational/builder",[C[866],C[868]]],["3.2.2. Fold","patterns/creational/fold",[C[866],C[868]]],[C[869],"patterns/structural/intro",[C[866]]],["3.3.1. Compose Structs","patterns/structural/compose-structs",[C[866],C[869]]],["3.3.2. Prefer Small Crates","patterns/structural/small-crates",[C[866],C[869]]],["3.3.3. Contain unsafety in small modules","patterns/structural/unsafe-mods",[C[866],C[869]]],[C[870],"patterns/ffi/intro",[C[866]]],["3.4.1. Object-Based APIs","patterns/ffi/export",[C[866],C[870]]],["3.4.2. Type Consolidation into Wrappers","patterns/ffi/wrappers",[C[866],C[870]]],[C[871],"anti_patterns/index",N],["4.1. Clone to satisfy the borrow checker","anti_patterns/borrow_clone",[C[871]]],["4.2. #[deny(warnings)]","anti_patterns/deny-warnings",[C[871]]],["4.3. Deref Polymorphism","anti_patterns/deref",[C[871]]],[C[872],"functional/index",N],["5.1. Programming paradigms","functional/paradigms",[C[872]]],["5.2. Generics as Type Classes","functional/generics-type-classes",[C[872]]],["5.3. Functional Optics","functional/optics",[C[872]]],[C[873],"additional_resources/index",N],["6.1. Design principles","additional_resources/design-principles",[C[873]]]]},{"name":"Learn Rust With Entirely Too Many Linked Lists","url":"https://rust-unofficial.github.io/too-many-lists/","pages":[[C[52],"index",N],[C[874],"first",N],["2.1. Layout","first-layout",[C[874]]],["2.2. New","first-new",[C[874]]],["2.3. Ownership 101","first-ownership",[C[874]]],["2.4. Push","first-push",[C[874]]],["2.5. Pop","first-pop",[C[874]]],["2.6. Testing","first-test",[C[874]]],["2.7. Drop","first-drop",[C[874]]],["2.8. Final Code","first-final",[C[874]]],[C[875],"second",N],["3.1. Option","second-option",[C[875]]],["3.2. Generic","second-generic",[C[875]]],["3.3. Peek","second-peek",[C[875]]],["3.4. IntoIter","second-into-iter",[C[875]]],["3.5. Iter","second-iter",[C[875]]],["3.6. IterMut","second-iter-mut",[C[875]]],["3.7. Final Code","second-final",[C[875]]],[C[876],"third",N],["4.1. Layout","third-layout",[C[876]]],["4.2. Basics","third-basics",[C[876]]],["4.3. Drop","third-drop",[C[876]]],["4.4. Arc","third-arc",[C[876]]],["4.5. Final Code","third-final",[C[876]]],[C[877],"fourth",N],["5.1. Layout","fourth-layout",[C[877]]],["5.2. Building","fourth-building",[C[877]]],["5.3. Breaking","fourth-breaking",[C[877]]],["5.4. Peek","fourth-peek",[C[877]]],["5.5. Symmetric Cases","fourth-symmetry",[C[877]]],["5.6. Iteration","fourth-iteration",[C[877]]],["5.7. Final Code","fourth-final",[C[877]]],[C[878],"fifth",N],["6.1. Layout","fifth-layout",[C[878]]],["6.2. Unsafe","fifth-unsafe",[C[878]]],["6.3. Basics","fifth-basics",[C[878]]],["6.4. Miri","fifth-miri",[C[878]]],["6.5. Stacked Borrows","fifth-stacked-borrows",[C[878]]],["6.6. Testing Stacked Borrows","fifth-testing-stacked-borrows",[C[878]]],["6.7. Layout + Basics Redux","fifth-layout-basics-redux",[C[878]]],["6.8. Extras","fifth-extras",[C[878]]],["6.9. Final Code","fifth-final",[C[878]]],[C[879],"sixth",N],["7.1. Layout","sixth-layout",[C[879]]],["7.2. Variance and Subtyping","sixth-variance",[C[879]]],["7.3. Basics","sixth-basics",[C[879]]],["7.4. Panic Safety","sixth-panics",[C[879]]],["7.5. Boring Combinatorics","sixth-combinatorics",[C[879]]],["7.6. Filling In Random Bits","sixth-random-bits",[C[879]]],["7.7. Testing","sixth-testing",[C[879]]],["7.8. Send, Sync, and Compile Tests","sixth-send-sync",[C[879]]],["7.9. An Introduction To Cursors","sixth-cursors-intro",[C[879]]],["7.10. Implementing Cursors","sixth-cursors-impl",[C[879]]],["7.11. Testing Cursors","sixth-cursors-testing",[C[879]]],["7.12. Final Code","sixth-final",[C[879]]],[C[880],"infinity",N],["8.1. The Double Single","infinity-double-single",[C[880]]],["8.2. The Stack-Allocated Linked List","infinity-stack-allocated",[C[880]]]]},{"name":"The Little Book of Rust Macros","url":"https://veykril.github.io/tlborm/","pages":[[C[26],C[47],N],[C[881],"syntax-extensions",N],["1.1. Source Analysis","syntax-extensions/source-analysis",[C[881]]],["1.2. Macros in the Ast","syntax-extensions/ast",[C[881]]],["1.3. Expansion","syntax-extensions/expansion",[C[881]]],["1.4. Hygiene","syntax-extensions/hygiene",[C[881]]],["1.5. Debugging","syntax-extensions/debugging",[C[881]]],[C[882],"decl-macros",N],["2.1. A Methodical Introduction","decl-macros/macros-methodical",[C[882]]],["2.2. A Practical Introduction","decl-macros/macros-practical",[C[882]]],[C[883],"decl-macros/minutiae",[C[882]]],["2.3.1. Fragment Specifiers","decl-macros/minutiae/fragment-specifiers",[C[882],C[883]]],["2.3.2. Metavariables and Expansion Redux","decl-macros/minutiae/metavar-and-expansion",[C[882],C[883]]],["2.3.3. Metavariable Expressions","decl-macros/minutiae/metavar-expr",[C[882],C[883]]],["2.3.4. Hygiene","decl-macros/minutiae/hygiene",[C[882],C[883]]],["2.3.5. Non-Identifier Identifiers","decl-macros/minutiae/identifiers",[C[882],C[883]]],["2.3.6. Debugging","decl-macros/minutiae/debugging",[C[882],C[883]]],["2.3.7. Scoping","decl-macros/minutiae/scoping",[C[882],C[883]]],["2.3.8. Import and Export","decl-macros/minutiae/import-export",[C[882],C[883]]],[C[884],"decl-macros/patterns",[C[882]]],["2.4.1. Callbacks","decl-macros/patterns/callbacks",[C[882],C[884]]],["2.4.2. Incremental TT Munchers","decl-macros/patterns/tt-muncher",[C[882],C[884]]],["2.4.3. Internal Rules","decl-macros/patterns/internal-rules",[C[882],C[884]]],["2.4.4. Push-down Accumulation","decl-macros/patterns/push-down-acc",[C[882],C[884]]],["2.4.5. Repetition Replacement","decl-macros/patterns/repetition-replacement",[C[882],C[884]]],["2.4.6. TT Bundling","decl-macros/patterns/tt-bundling",[C[882],C[884]]],[C[885],"decl-macros/building-blocks",[C[882]]],["2.5.1. AST Coercion","decl-macros/building-blocks/ast-coercion",[C[882],C[885]]],[C[886],"decl-macros/building-blocks/counting",[C[882],C[885]]],["2.5.2.1. Abacus Counting","decl-macros/building-blocks/abacus-counting",[C[882],C[885],C[886]]],["2.5.3. Parsing Rust","decl-macros/building-blocks/parsing",[C[882],C[885]]],["2.6. Macros 2.0","decl-macros/macros2",[C[882]]],[C[887],"proc-macros",N],[C[888],"proc-macros/methodical",[C[887]]],["3.1.1. Function-like","proc-macros/methodical/function-like",[C[887],C[888]]],["3.1.2. Attribute","proc-macros/methodical/attr",[C[887],C[888]]],["3.1.3. Derive","proc-macros/methodical/derive",[C[887],C[888]]],["3.3. Third-Party Crates","proc-macros/third-party-crates",[C[887]]],["3.4. Hygiene and Spans","proc-macros/hygiene",[C[887]]],["Glossary",C[860],N]]},{"name":"Rust SIMD Performance Guide","url":"https://rust-lang.github.io/packed_simd/perf-guide/introduction.html","pages":[[C[26],C[47],N],[C[889],"float-math/fp",N],["1.1. Short-vector Math Library","float-math/svml",[C[889]]],["1.2. Approximate functions","float-math/approx",[C[889]]],["1.3. Fused multiply-accumulate","float-math/fma",[C[889]]],[C[890],"target-feature/features",N],["2.1. Using RUSTFLAGS","target-feature/rustflags",[C[890]]],["2.2. Using the target_feature attribute","target-feature/attribute",[C[890]]],["2.3. Interaction with inlining","target-feature/inlining",[C[890]]],["2.4. Detecting features at runtime","target-feature/runtime",[C[890]]],["3. Bounds checking","bound_checks",N],["4. Vertical and horizontal operations","vert-hor-ops",N],[C[891],"prof/profiling",N],["5.1. Profiling on Linux","prof/linux",[C[891]]],["5.2. Using machine code analyzers","prof/mca",[C[891]]]]},{"name":C[892],"url":"https://www.lurklurk.org/effective-rust/","pages":[[C[892],C[852],N],["Preface","preface",N],[C[893],"types",N],["1.1. Item 1: Use the type system to express your data structures","use-types",[C[893]]],["1.2. Item 2: Use the type system to express common behavior","use-types-2",[C[893]]],["1.3. Item 3: Prefer Option and Result transforms over explicit match expressions","transform",[C[893]]],["1.4. Item 4: Prefer idiomatic Error types","errors",[C[893]]],["1.5. Item 5: Understand type conversions","casts",[C[893]]],["1.6. Item 6: Embrace the newtype pattern","newtype",[C[893]]],["1.7. Item 7: Use builders for complex types","builders",[C[893]]],["1.8. Item 8: Familiarize yourself with reference and pointer types",C[791],[C[893]]],["1.9. Item 9: Consider using iterator transforms instead of explicit loops",C[894],[C[893]]],[C[895],"traits",N],["2.1. Item 10: Familiarize yourself with standard traits","std-traits",[C[895]]],["2.2. Item 11: Implement the Drop trait for RAII patterns","raii",[C[895]]],["2.3. Item 12: Understand the trade-offs between generics and trait objects","generics",[C[895]]],["2.4. Item 13: Use default implementations to minimize required trait methods","default-impl",[C[895]]],[C[897],"concepts",N],["3.1. Item 14: Understand lifetimes",C[896],[C[897]]],["3.2. Item 15: Understand the borrow checker","borrows",[C[897]]],["3.3. Item 16: Avoid writing unsafe code","unsafe",[C[897]]],["3.4. Item 17: Be wary of shared-state parallelism","deadlock",[C[897]]],["3.5. Item 18: Don't panic","panic",[C[897]]],["3.6. Item 19: Avoid reflection","reflection",[C[897]]],["3.7. Item 20: Avoid the temptation to over-optimize","optimize",[C[897]]],[C[898],"deps",N],["4.1. Item 21: Understand what semantic versioning promises","semver",[C[898]]],["4.2. Item 22: Minimize visibility",C[899],[C[898]]],["4.3. Item 23: Avoid wildcard imports","wildcard",[C[898]]],["4.4. Item 24: Re-export dependencies whose types appear in your API","re-export",[C[898]]],["4.5. Item 25: Manage your dependency graph","dep-graph",[C[898]]],["4.6. Item 26: Be wary of feature creep","features",[C[898]]],[C[901],"tooling",N],["5.1. Item 27: Document public interfaces",C[900],[C[901]]],["5.2. Item 28: Use macros judiciously","macros",[C[901]]],["5.3. Item 29: Listen to Clippy","clippy",[C[901]]],["5.4. Item 30: Write more than unit tests","testing",[C[901]]],["5.5. Item 31: Take advantage of the tooling ecosystem","use-tools",[C[901]]],["5.6. Item 32: Set up a continuous integration (CI) system","ci",[C[901]]],[C[902],"beyond-std",N],["6.1. Item 33: Consider making library code no_std compatible","no-std",[C[902]]],["6.2. Item 34: Control what crosses FFI boundaries","ffi",[C[902]]],["6.3. Item 35: Prefer bindgen to manual FFI mappings","bindgen",[C[902]]],["Afterword","afterword",N],["Index","indexing",N]]},{"name":"The Little Book of Rust Books","url":"https://lborb.github.io/book/","pages":[[C[26],C[852],N],["1. Official Rust Books","official",N],["2. Unofficial Rust Books","unofficial",N],["3. Rust Application Books","applications",N]]},{"name":"Rust for the Polyglot Programmer","url":"https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/","pages":[["Contents","index",N],["1. Introduction and overview","intro",N],["2. Syntax","syntax",N],["3. Types and patterns","types",N],["4. Ownership, memory model",C[903],N],["5. Traits, methods","traits",N],["6. Safety, threadsafety","safety",N],["7. Error handling","errors",N],["8. Macros and metaprogramming","macros",N],["9. Async Rust","async",N],["10. FFI","ffi",N],["11. Documentation and testing","rustdoc",N],["12. Stability",C[904],N],["13. Cargo","cargo",N],["14. Libraries","libs",N],["15. Colophon","colophon",N]]},{"name":C[905],"url":"https://ruspiro.github.io/ruspiro-async-book/","pages":[[C[905],"cover",N],[C[52],"01-00-introduction",N],["1.1. Motivation","01-01-motivation",[C[52]]],[C[906],"02-00-terminology",N],["2.1. Future","02-01-future",[C[906]]],["2.2. Executor","02-02-executor",[C[906]]],["2.3. Async","02-03-async",[C[906]]],["2.4. Await","02-04-await",[C[906]]],[C[907],"03-00-build-the-runtime",N],["3.1. The Thought","03-01-the-thought",[C[907]]],["3.2. The First Naive Brain","03-02-first-brain",[C[907]]],["3.3. The Context and the Waker","03-03-context-and-waker",[C[907]]],["3.4. MPMC - Channel","03-04-mpmc-channel",[C[907]]],["3.5. The simple Brain","03-05-simple-brain",[C[907]]],["4. Proof the Runtime","04-00-proof-runtime",N],["5. Conclusion","05-00-conclusion",N],["The Author","author",N]]},{"name":"Roguelike Tutorial - In Rust","url":"https://bfnightly.bracketproductions.com/","pages":[[C[26],"chapter_0",N],["1. Building for the Web","webbuild",N],[C[908],"chapter_1",N],["2.1. Entities and Components","chapter_2",[C[908]]],["2.2. Walking A Map","chapter_3",[C[908]]],["2.3. A More Interesting Map","chapter_4",[C[908]]],["2.4. Field of View","chapter_5",[C[908]]],["2.5. Monsters","chapter_6",[C[908]]],["2.6. Dealing Damage","chapter_7",[C[908]]],["2.7. User Interface","chapter_8",[C[908]]],["2.8. Items and Inventory","chapter_9",[C[908]]],["2.9. Ranged Scrolls/Targeting","chapter_10",[C[908]]],["2.10. Saving and Loading","chapter_11",[C[908]]],["2.11. Delving Deeper","chapter_12",[C[908]]],["2.12. Difficulty","chapter_13",[C[908]]],["2.13. Equipment","chapter_14",[C[908]]],[C[909],"chapter_15",N],["3.1. Nice Walls with Bitsets","chapter_16",[C[909]]],["3.2. Bloodstains","chapter_17",[C[909]]],["3.3. Particle Effects","chapter_18",[C[909]]],["3.4. Hunger Clock","chapter_19",[C[909]]],["3.5. Magic Mapping","chapter_20",[C[909]]],["3.6. REX Paint Menu","chapter_21",[C[909]]],["3.7. Simple Traps","chapter_22",[C[909]]],[C[910],"chapter23-prefix",N],["4.1. Refactor Map Building","chapter_23",[C[910]]],["4.2. Map Building Test Harness","chapter_24",[C[910]]],["4.3. BSP Room Dungeons","chapter_25",[C[910]]],["4.4. BSP Interior Design","chapter_26",[C[910]]],["4.5. Cellular Automata Maps","chapter_27",[C[910]]],["4.6. Drunkard's Walk Maps","chapter_28",[C[910]]],["4.7. Mazes and Labyrinths","chapter_29",[C[910]]],["4.8. Diffusion-limited aggregation maps","chapter_30",[C[910]]],["4.9. Add symmetry and brushes to the library","chapter_31",[C[910]]],["4.10. Voronoi Hive Maps","chapter_32",[C[910]]],["4.11. Wave Function Collapse","chapter_33",[C[910]]],["4.12. Prefabs & Sectionals","chapter_34",[C[910]]],["4.13. Room Vaults","chapter_35",[C[910]]],["4.14. Layering/Builder Chaining","chapter_36",[C[910]]],["4.15. Fun With Layers","chapter_37",[C[910]]],["4.16. Room Builders","chapter_38",[C[910]]],["4.17. Better Corridors","chapter_39",[C[910]]],["4.18. Doors","chapter_40",[C[910]]],["4.19. Decouple map size from screen size","chapter_41",[C[910]]],["4.20. Section 3 Conclusion","chapter_42",[C[910]]],[C[911],"chapter_43",N],["5.1. Design Document","chapter_44",[C[911]]],["5.2. Raw Files, Data-Driven Design","chapter_45",[C[911]]],["5.3. Data-Driven Spawn Tables","chapter_46",[C[911]]],["5.4. Making the town","chapter_47",[C[911]]],["5.5. Populating the town","chapter_48",[C[911]]],["5.6. Living bystanders","chapter_49",[C[911]]],["5.7. Game Stats","chapter_50",[C[911]]],["5.8. Equipment","chapter_51",[C[911]]],["5.9. User Interface","chapter_52",[C[911]]],["5.10. Into the Woods!","chapter_53",[C[911]]],["5.11. XP","chapter_54",[C[911]]],["5.12. Backtracking","chapter_55",[C[911]]],["5.13. Into the caverns","chapter_56",[C[911]]],["5.14. Better AI","chapter_57",[C[911]]],["5.15. Spatial Indexing Revisited","chapter_57a",[C[911]]],["5.16. Item Stats and Vendors","chapter_58",[C[911]]],["5.17. Deep caverns","chapter_59",[C[911]]],["5.18. Cavern to Dwarf Fort","chapter_60",[C[911]]],["5.19. Town Portals","chapter_61",[C[911]]],["5.20. Magic Items","chapter_62",[C[911]]],["5.21. Effects","chapter_63",[C[911]]],["5.22. Cursed Items","chapter_64",[C[911]]],["5.23. Even More Items","chapter_65",[C[911]]],["5.24. Magic Spells","chapter_66",[C[911]]],["5.25. Enter the Dragon","chapter_67",[C[911]]],["5.26. Mushrooms","chapter_68",[C[911]]],["5.27. More Shrooms","chapter_69",[C[911]]],["5.28. Ranged Combat","chapter_70",[C[911]]],["5.29. Logging","chapter_71",[C[911]]],["5.30. Text Layers","chapter_72",[C[911]]],["5.31. Systems/Dispatch","chapter_73",[C[911]]],["5.32. Dark Elf City 1","chapter_74",[C[911]]],["6. Contributors","contributors",N],["7. Licensing","license",N]]},{"name":"High Assurance Rust Developing Secure and Robust Software","url":"https://highassurance.rs/","pages":[["High Assurance Rust","landing",N],["Frequently Asked Questions (FAQ)","faq",N],["Engage with this Book!","engage",N],["Sponsor Call for Proposals (CFP)","cfp",N],["Download","download",N],["Changelog","changelog",N],["License","license",N],[C[52],"chp1/_index",N],["1.1. Why this book?","chp1/why_this_book",[C[52]]],["1.2. How is this book structured?","chp1/how_is_this_book_structured",[C[52]]],["1.3. Hands-on Learning","chp1/challenges",[C[52]]],["1.4. About the Team","chp1/about_the_team",[C[52]]],["1.5. Warmup: Environment Setup","chp1/_hands_on",[C[52]]],[C[912],"chp2/_index",N],["2.1. Static vs. Dynamic Tools","chp2/static_vs_dynamic",[C[912]]],["2.2. Static Assurance (1/2)","chp2/static_assurance_1",[C[912]]],["2.3. Static Assurance (2/2)","chp2/static_assurance_2",[C[912]]],["2.4. Dynamic Assurance (1/3)","chp2/dynamic_assurance_1",[C[912]]],["2.5. Dynamic Assurance (2/3)","chp2/dynamic_assurance_2",[C[912]]],["2.6. Dynamic Assurance (3/3)","chp2/dynamic_assurance_3",[C[912]]],["2.7. Limitations and Threat Modeling","chp2/limits",[C[912]]],["2.8. DIY CLI Encryption Tool","chp2/cli",[C[912]]],["2.9. Operational Assurance (1/2)","chp2/operational_assurance_1",[C[912]]],["2.10. Operational Assurance (2/2)","chp2/operational_assurance_2",[C[912]]],["2.11. Challenge: Extend the CLI Tool","chp2/_hands_on",[C[912]]],[C[913],"chp3/_index",N],["3.1. On Undefined Behavior","chp3/undef",[C[913]]],["3.2. Rust: Low-Level Data (1/6)","chp3/rust_1_low_data_rep",[C[913]]],["3.3. Rust: High-Level Data (2/6)","chp3/rust_2_high_data_rep",[C[913]]],["3.4. Rust: Control Flow (3/6)","chp3/rust_3_ctrl_flow",[C[913]]],["3.5. Rust: Ownership Principles (4/6)","chp3/rust_4_own_1",[C[913]]],["3.6. Rust: Ownership in Practice (5/6)","chp3/rust_5_own_2",[C[913]]],["3.7. Rust: Error Handling (6/6)","chp3/rust_6_error",[C[913]]],["3.8. The Module System","chp3/modules",[C[913]]],["3.9. Recommended Tooling","chp3/tooling",[C[913]]],["3.11. Challenge: Port a Program","chp3/_hands_on",[C[913]]],[C[914],"chp4/_index",N],["4.1. Software Perspective: CPU to Process","chp4/sw_stack_1",[C[914]]],["4.2. Assurance Perspective: Stack Safety","chp4/assure_stack_1",[C[914]]],["4.3. Attacker's Perspective: Breaking Safety (1/2)","chp4/attack_1",[C[914]]],["4.4. Attacker's Perspective: Unifying Theory (2/2)","chp4/attack_2",[C[914]]],["4.10. Rust's Memory Safety Guarantees (1/2)","chp4/safe_rust_PLACEHOLDER",[C[914]]],[C[915],"chp16_appendix/_index",N],["16.2. Inventory: Tools of the Trade","chp16_appendix/tools",[C[915]]],["16.3. Inventory: Recommended Reading","chp16_appendix/books",[C[915]]],["16.4. Inventory: Additional Resources","chp16_appendix/resources",[C[915]]],["16.5. Fundamentals: Stream Ciphers","chp16_appendix/crypto",[C[915]]],["16.6. Fundamentals: Type Systems","chp16_appendix/types",[C[915]]],["16.7. Fundamentals: Component-Based Design","chp16_appendix/components",[C[915]]],["16.8. Fundamentals: Memory Hierarchy","chp16_appendix/mem_hierarch",[C[915]]],["16.10. Theory: Inter-procedural CFGs","chp16_appendix/icfg",[C[915]]]]},{"name":"Wasmtime docs","url":"https://docs.wasmtime.dev/","pages":[[C[52],C[47],N],[C[916],"cli",N],["2.1. Installation","cli-install",[C[916]]],["2.2. CLI Options","cli-options",[C[916]]],["2.3. CLI Logging","cli-logging",[C[916]]],["2.4. Cache Configuration","cli-cache",[C[916]]],[C[917],"lang",N],[C[918],"lang-rust",[C[917]]],["3.1.1. Hello, world!","examples-rust-hello-world",[C[917],C[918]]],["3.1.2. Calculating the GCD","examples-rust-gcd",[C[917],C[918]]],["3.1.3. Using Linear Memory","examples-rust-memory",[C[917],C[918]]],["3.1.4. WASI","examples-rust-wasi",[C[917],C[918]]],["3.1.5. Linking Modules","examples-rust-linking",[C[917],C[918]]],["3.1.6. Debugging","examples-rust-debugging",[C[917],C[918]]],["3.1.7. Core Dumps","examples-rust-core-dumps",[C[917],C[918]]],["3.1.8. Using Multi-Value","examples-rust-multi-value",[C[917],C[918]]],["3.2. C","lang-c",[C[917]]],["3.2.1. Hello, World!","examples-c-hello-world",[C[917],"3.2. C"]],["3.2.2. Calculating the GCD","examples-c-gcd",[C[917],"3.2. C"]],["3.2.3. Using Linear Memory","examples-c-memory",[C[917],"3.2. C"]],["3.2.4. WASI","examples-c-wasi",[C[917],"3.2. C"]],["3.2.5. Linking Modules","examples-c-linking",[C[917],"3.2. C"]],["3.2.6. Debugging","examples-c-debugging",[C[917],"3.2. C"]],["3.2.7. Using Multi-Value","examples-c-multi-value",[C[917],"3.2. C"]],["3.3. Python","lang-python",[C[917]]],["3.4. .NET","lang-dotnet",[C[917]]],["3.5. Go","lang-go",[C[917]]],["3.6. Bash","lang-bash",[C[917]]],["3.7. Ruby","lang-ruby",[C[917]]],["3.8. Elixir","lang-elixir",[C[917]]],[C[919],"examples",N],[C[920],"examples-debugging",[C[919]]],["4.1.1. Debugging with gdb and lldb","examples-debugging-native-debugger",[C[919],C[920]]],["4.1.2. Debugging with Core Dumps","examples-debugging-core-dumps",[C[919],C[920]]],[C[921],"examples-profiling",[C[919]]],["4.2.1. Profiling with Perf","examples-profiling-perf",[C[919],C[921]]],["4.2.2. Profiling with VTune","examples-profiling-vtune",[C[919],C[921]]],["4.2.3. Profiling with samply","examples-profiling-samply",[C[919],C[921]]],["4.2.4. Cross-platform Profiling","examples-profiling-guest",[C[919],C[921]]],["4.3. Checking Guests' Memory Accesses","wmemcheck",[C[919]]],["4.4. Building a minimal embedding","examples-minimal",[C[919]]],[C[922],C[904],N],["5.1. Release Process","stability-release",[C[922]]],["5.2. Tiers of support","stability-tiers",[C[922]]],["5.3. Platform Support","stability-platform-support",[C[922]]],[C[923],"security",N],["6.1. Disclosure Policy","security-disclosure",[C[923]]],["6.2. What is considered a security bug?","security-what-is-considered-a-security-vulnerability",[C[923]]],[C[924],C[742],N],["7.1. Architecture","contributing-architecture",[C[924]]],["7.2. Building","contributing-building",[C[924]]],["7.3. Testing","contributing-testing",[C[924]]],["7.4. Fuzzing","contributing-fuzzing",[C[924]]],["7.5. CI","contributing-ci",[C[924]]],["7.6. Reducing Test Cases","contributing-reducing-test-cases",[C[924]]],["7.7. Cross Compiling","contributing-cross-compiling",[C[924]]],["7.8. Coding Guidelines","contributing-coding-guidelines",[C[924]]],["7.9. Development Process","contributing-development-process",[C[924]]],["7.10. Implementing Wasm Proposals","contributing-implementing-wasm-proposals",[C[924]]],[C[925],"contributing-maintainer-guidelines",[C[924]]],["7.11.1. Code Review","contributing-code-review",[C[924],C[925]]],["7.11.2. Release Process","contributing-release-process",[C[924],C[925]]],["7.12. Governance","contributing-governance",[C[924]]],["7.13. Code of Conduct","contributing-coc",[C[924]]]]}];export default booksIndex; \ No newline at end of file +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","Introduction","2. Getting Started","3. Under the Hood: Executing Futures and Tasks","6. Streams","7. Executing Multiple Futures at a Time","8. Workarounds to Know and Love","10. Final Project: HTTP Server","1. What are editions?","3. Rust 2018","4. Rust 2021","5. Rust 2024 🚧","1.1. Installation","2. Cargo Guide","3. Cargo Reference","3.1. Specifying Dependencies","3.2. The Manifest Format","3.4. Features","3.8. Build Scripts","3.13. Registries","3.13.1. Registry Authentication","3.13.2. Running a Registry","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","3. Prerequisites","commands/index","4. Commands","5. Tutorials","5.1. Hybrid applications with Webpack","5.2. npm browser packages","5.2.1. Getting started","5.2.2. Template deep dive","1.4. Installation","2. Getting started","3. Peripherals","4. Static Guarantees","8. Design Patterns","8.1. HALs","10. Interoperability","11. 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","1. A command line app in 15 minutes","2. In-depth topics","1. Hello World","1.2. Formatted print","1.2.2. Display","2. Primitives","3. Custom Types","3.2. Enums","4. Variable Bindings","5. Types","6. Conversion","8. Flow of Control","8.2. loop","8.5. match","8.5.1. Destructuring","9. Functions","9.2. Closures","9.2.6. Examples in std","10. Modules","11. Crates","12. Cargo","13. Attributes","13.3. cfg","14. Generics","14.4. Bounds","14.8. Associated items","14.9. Phantom type parameters","15. Scoping rules","15.2. Ownership and moves","15.3. Borrowing","15.4. Lifetimes","16. Traits","17. macro_rules!","17.1. Syntax","18. Error handling","18.3. Option & unwrap","18.4. Result","18.5. Multiple error types","19. Std library types","19.5. Result","19.7. HashMap","20. Std misc","20.1. Threads","20.4. File I/O","20.5. Child processes","20.7. Program arguments","21. Testing","22. Unsafe Operations","23. Compatibility","24. Meta","0001-private-fields","0002-rfc-process","0003-attribute-usage","0008-new-intrinsics","0016-more-attributes","0019-opt-in-builtin-traits","0026-remove-priv","0034-bounded-type-parameters","0040-libstd-facade","0042-regexps","0048-traits","0049-match-arm-attributes","0050-assert","0059-remove-tilde","0060-rename-strbuf","0063-module-file-system-hierarchy","0066-better-temporary-lifetimes","0068-const-unsafe-pointers","0069-ascii-literals","0071-const-block-expr","0079-undefined-struct-layout","0085-pattern-macros","0086-plugin-registrar","0087-trait-bounds-with-plus","0089-loadable-lints","0090-lexical-syntax-simplification","0092-struct-grammar","0093-remove-format-intl","0100-partial-cmp","0107-pattern-guards-with-bind-by-move","0109-remove-crate-id","0111-index-traits","0112-remove-cross-borrowing","0114-closures","0115-rm-integer-fallback","0116-no-module-shadowing","0123-share-to-threadsafe","0130-box-not-special","0131-target-specification","0132-ufcs","0135-where","0136-no-privates-in-public","0139-remove-cross-borrowing-entirely","0141-lifetime-elision","0151-capture-by-value","0155-anonymous-impl-only-in-same-module","0160-if-let","0164-feature-gate-slice-pats","0169-use-path-as-id","0179-and-mut-patterns","0184-tuple-accessors","0192-bounds-on-object-and-generic-types","0194-cfg-syntax","0195-associated-items","0198-slice-notation","0199-ownership-variants","0201-error-chaining","0202-subslice-syntax-change","0212-restore-int-fallback","0213-defaulted-type-params","0214-while-let","0216-collection-views","0218-empty-struct-with-braces","0221-panic","0230-remove-runtime","0231-upvar-capture-inference","0234-variants-namespace","0235-collections-conventions","0236-error-conventions","0240-unsafe-api-location","0241-deref-conversions","0243-trait-based-exception-handling","0246-const-vs-static","0255-object-safety","0256-remove-refcounting-gc-of-t","0320-nonzeroing-dynamic-drop","0326-restrict-xXX-to-ascii","0339-statically-sized-literals","0341-remove-virtual-structs","0342-keywords","0344-conventions-galore","0356-no-module-prefixes","0369-num-reform","0378-expr-macros","0379-remove-reflection","0380-stabilize-std-fmt","0385-module-system-cleanup","0387-higher-ranked-trait-bounds","0390-enum-namespacing","0401-coercions","0403-cargo-build-command","0404-change-prefer-dynamic","0418-struct-variants","0430-finalizing-naming-conventions","0438-precedence-of-plus","0439-cmp-ops-reform","0445-extension-trait-conventions","0446-es6-unicode-escapes","0447-no-unused-impl-parameters","0450-un-feature-gate-some-more-gates","0453-macro-reform","0458-send-improvements","0459-disallow-shadowing","0461-tls-overhaul","0463-future-proof-literal-suffixes","0469-feature-gate-box-patterns","0474-path-reform","0486-std-ascii-reform","0490-dst-syntax","0494-c_str-and-c_vec-stability","0495-array-pattern-changes","0501-consistent_no_prelude_attributes","0503-prelude-stabilization","0504-show-stabilization","0505-api-comment-conventions","0507-release-channels","0509-collections-reform-part-2","0517-io-os-reform","0520-new-array-repeat-syntax","0522-self-impl","0526-fmt-text-writer","0528-string-patterns","0529-conversion-traits","0531-define-rfc-scope","0532-self-in-use","0533-no-array-elem-moves","0534-deriving2derive","0544-rename-int-uint","0546-Self-not-sized-by-default","0550-macro-future-proofing","0556-raw-lifetime","0558-require-parentheses-for-chained-comparisons","0560-integer-overflow","0563-remove-ndebug","0565-show-string-guidelines","0572-rustc-attribute","0574-drain-range","0580-rename-collections","0587-fn-return-should-be-an-associated-type","0592-c-str-deref","0593-forbid-Self-definitions","0599-default-object-bound","0601-replace-be-with-become","0639-discriminant-intrinsic","0640-debug-improvements","0702-rangefull-expression","0735-allow-inherent-impls-anywhere","0736-privacy-respecting-fru","0738-variance","0769-sound-generic-drop","0771-std-iter-once","0803-type-ascription","0809-box-and-in-for-stdlib","0823-hash-simplification","0832-from-elem-with-love","0839-embrace-extend-extinguish","0840-no-panic-in-c-string","0873-type-macros","0879-small-base-lexing","0888-compiler-fence-intrinsics","0909-move-thread-local-to-std-thread","0911-const-fn","0921-entry_v3","0940-hyphens-considered-harmful","0953-op-assign","0968-closure-return-type-syntax","0979-align-splitn-with-other-languages","0980-read-exact","0982-dst-coercion","1011-process.exit","1014-stdout-existential-crisis","1023-rebalancing-coherence","1030-prelude-additions","1040-duration-reform","1044-io-fs-2.1","1047-socket-timeouts","1048-rename-soft-link-to-symlink","1054-str-words","1057-io-error-sync","1058-slice-tail-redesign","1066-safe-mem-forget","1068-rust-governance","1096-remove-static-assert","1102-rename-connect-to-join","1105-api-evolution","1119-result-expect","1122-language-semver","1123-str-split-at","1131-likely-intrinsic","1135-raw-pointer-comparisons","1152-slice-string-symmetry","1156-adjust-default-object-bounds","1174-into-raw-fd-socket-handle-traits","1183-swap-out-jemalloc","1184-stabilize-no_std","1192-inclusive-ranges","1193-cap-lints","1194-set-recovery","1199-simd-infrastructure","1200-cargo-install","1201-naked-fns","1210-impl-specialization","1212-line-endings","1214-projections-lifetimes-and-wf","1216-bang-type","1219-use-group-as","1228-placement-left-arrow","1229-compile-time-asserts","1236-stabilize-catch-panic","1238-nonparametric-dropck","1240-repr-packed-unsafe-ref","1241-no-wildcard-deps","1242-rust-lang-crates","1252-open-options","1257-drain-range-2","1260-main-reexport","1268-allow-overlapping-impls-on-marker-traits","1270-deprecation","1288-time-improvements","1291-promote-libc","1298-incremental-compilation","1300-intrinsic-semantics","1307-osstring-methods","1327-dropck-param-eyepatch","1328-global-panic-handler","1331-grammar-is-canonical","1358-repr-align","1359-process-ext-unix","1361-cargo-cfg-dependencies","1398-kinds-of-allocators","1399-repr-pack","1414-rvalue_static_promotion","1415-trim-std-os","1419-slice-copy","1422-pub-restricted","1432-replace-slice","1434-contains-method-for-ranges","1440-drop-types-in-const","1443-extended-compare-and-swap","1444-union","1445-restrict-constants-in-patterns","1461-net2-mutators","1467-volatile","1479-unix-socket","1492-dotdot-in-patterns","1498-ipv6addr-octets","1504-int128","1506-adt-kinds","1510-cdylib","1513-less-unwinding","1521-copy-clone-semantics","1522-conservative-impl-trait","1525-cargo-workspace","1535-stable-overflow-checks","1542-try-from","1543-integer_atomics","1548-global-asm","1552-contains-method-for-various-collections","1558-closure-to-fn-coercion","1559-attributes-with-literals","1560-name-resolution","1561-macro-naming","1566-proc-macros","1567-long-error-codes-explanation-normalization","1574-more-api-documentation-conventions","1576-macros-literal-matcher","1581-fused-iterator","1584-macros","1589-rustc-bug-fix-procedure","1590-macro-lifetimes","1598-generic_associated_types","1607-style-rfcs","1618-ergonomic-format-args","1620-regex-1.0","1623-static","1624-loop-break-value","1636-document_all_features","1640-duration-checked-sub","1643-memory-model-strike-team","1644-default-and-expanded-rustc-errors","1647-allow-self-in-where-clauses","1649-atomic-access","1651-movecell","1653-assert_ne","1660-try-borrow","1665-windows-subsystem","1679-panic-safe-slicing","1681-macros-1.1","1682-field-init-shorthand","1683-docs-team","1685-deprecate-anonymous-parameters","1695-add-error-macro","1696-discriminant","1717-dllimport","1721-crt-static","1725-unaligned-access","1728-north-star","1733-trait-alias","1758-repr-transparent","1774-roadmap-2017","1789-as-cell","1824-crates.io-default-ranking","1826-change-doc-default-urls","1828-rust-bookshelf","1845-shared-from-slice","1849-non-static-type-id","1857-stabilize-drop-order","1859-try-trait","1860-manually-drop","1861-extern-types","1866-more-readable-assert-eq","1868-portability-lint","1869-eprintln","1884-unstable-sort","1892-uninitialized-uninhabited","1909-unsized-rvalues","1925-optional-match-vert","1937-ques-in-main","1940-must-use-functions","1946-intra-rustdoc-links","1951-expand-impl-trait","1961-clamp","1966-unsafe-pointer-reform","1969-cargo-prepublish","1974-global-allocators","1977-public-private-dependencies","1983-nursery-deprecation","1985-tiered-browser-support","1990-external-doc-attribute","2000-const-generics","2005-match-ergonomics","2008-non-exhaustive","2011-generic-assert","2025-nested-method-calls","2027-object_safe_for_dispatch","2033-experimental-coroutines","2043-is-aligned-intrinsic","2044-license-rfcs","2045-target-feature","2046-label-break-value","2052-epochs","2056-allow-trivial-where-clause-constraints","2057-refcell-replace","2070-panic-implementation","2071-impl-trait-existential-types","2071-impl-trait-type-alias","2086-allow-if-let-irrefutables","2089-implied-bounds","2091-inline-semantic","2093-infer-outlives","2102-unnamed-fields","2103-tool-attributes","2113-dyn-trait-syntax","2115-argument-lifetimes","2116-alloc-me-maybe","2124-option-filter","2126-path-clarity","2128-use-nested-groups","2132-copy-closures","2133-all-the-clones","2136-build-systems","2137-variadic","2141-alternative-registries","2145-type-privacy","2151-raw-identifiers","2166-impl-only-use","2169-euclidean-modulo","2175-if-while-or-patterns","2195-really-tagged-unions","2196-metabuild","2203-const-repeat-expr","2226-fmt-debug-hex","2229-capture-disjoint-fields","2230-bury-description","2235-libc-struct-traits","2250-finalize-impl-dyn-syntax","2282-profile-dependencies","2289-associated-type-bounds","2294-if-let-guard","2295-os-str-pattern","2296-option-replace","2298-macro-at-most-once-rep","2300-self-in-typedefs","2302-tuple-struct-self-ctor","2306-convert-id","2307-concrete-nonzero-types","2314-roadmap-2018","2316-safe-unsafe-trait-methods","2318-custom-test-frameworks","2325-stable-simd","2333-prior-art","2338-type-alias-enum-variants","2341-const-locals","2342-const-control-flow","2344-const-looping","2345-const-panic","2351-is-sorted","2359-subslice-pattern-syntax","2360-bench-black-box","2361-dbg-macro","2363-arbitrary-enum-discriminant","2383-lint-reasons","2386-used","2388-try-expr","2394-async_await","2396-target-feature-1.1","2397-do-not-recommend","2412-optimize-attr","2420-unreserve-proc","2421-unreservations-2018","2436-style-guide","2437-rustfmt-stability","2438-deny-integer-literal-overflow-lint","2451-re-rebalancing-coherence","2457-non-ascii-idents","2471-lint-test-inner-function","2476-clippy-uno","2480-liballoc","2495-min-rust-version","2497-if-let-chains","2500-needle","2504-fix-error","2509-byte-concat","2514-union-initialization-and-drop","2515-type_alias_impl_trait","2521-c_void-reunification","2523-cfg-path-version","2526-const-wildcard","2528-type-changing-struct-update-syntax","2532-associated-type-defaults","2535-or-patterns","2539-cfg_attr-multiple-attrs","2561-future-possibilities","2565-formal-function-parameter-attributes","2570-linked-list-cursors","2574-simd-ffi","2580-ptr-meta","2582-raw-reference-mir-operator","2585-unsafe-block-in-unsafe-fn","2591-exhaustive-integer-pattern-matching","2592-futures","2603-rust-symbol-name-mangling-v0","2627-raw-dylib-kind","2645-transparent-unions","2657-roadmap-2019","2678-named-custom-cargo-profiles","2689-compiler-team-contributors","2696-debug-map-key-value","2700-associated-constants-on-ints","2707-dotdot-patterns","2730-cargo-token-from-process","2788-standard-lazy-types","2789-sparse-index","2795-format-args-implicit-identifiers","2797-project-ffi-unwind","2803-target-tier-policy","2832-core-net-types","2834-cargo-report-future-incompat","2835-project-safe-transmute","2836-project-asm","2837-demote-apple-32bit","2841-export-executable-symbols","2843-llvm-asm","2845-supertrait-item-shadowing","2856-project-groups","2857-roadmap-2020","2867-isa-attribute","2872-github-access-policy","2873-inline-asm","2904-compiler-major-change-process","2906-cargo-workspace-deduplicate","2909-destructuring-assignment","2912-rust-analyzer","2920-inline-const","2930-read-buf","2945-c-unwind-abi","2947-crates-io-token-scopes","2951-native-link-modifiers","2957-cargo-features2","2959-promote-aarch64-unknown-linux-gnu-to-tier1","2963-rustdoc-json","2965-project-error-handling","2972-constrained-naked","2977-stdsimd","2992-cfg-target-abi","2996-async-iterator","3007-panic-plan","3013-conditional-compilation-checking","3014-must-not-suspend-lint","3016-const-ub","3027-infallible-promotion","3028-cargo-binary-dependencies","3037-roadmap-2021","3052-optional-authors-field","3058-try-trait-v2","3085-edition-2021","3086-macro-metavar-expr","3101-reserved_prefixes","3107-derive-default-enum","3114-prelude-2021","3119-rust-crate-ownership","3123-rustdoc-scrape-examples","3127-trim-paths","3128-io-safety","3137-let-else","3139-cargo-alternative-registry-auth","3143-cargo-weak-namespaced-features","3151-scoped-threads","3173-float-next-up-down","3176-cargo-multi-dep-artifacts","3180-cargo-cli-crate-type","3184-thread-local-cell-methods","3185-static-async-fn-in-trait","3191-debugger-visualizer","3192-dyno","3216-closure-lifetime-binder","3228-process-process_group","3231-cargo-asymmetric-tokens","3239-cfg-target","3243-packages-as-optional-namespaces","3245-refined-impls","3254-types-team","3262-compiler-team-rolling-leads","3289-source_replacement_ambiguity","3307-de-rfc-type-ascription","3308-offset_of","3309-style-team","3323-restrictions","3324-dyn-upcasting","3325-unsafe-attributes","3327-lang-team-advisors","3336-maybe-dangling","3338-style-evolution","3346-t-opsem","3348-c-str-literal","3349-mixed-utf8-literals","3355-rust-spec","3368-diagnostic-attribute-namespace","3373-avoid-nonlocal-definitions-in-fns","3389-manifest-lint","3391-result_ffi_guarantees","3392-leadership-council","3399-cfg-attribute-in-where","3416-feature-metadata","3424-cargo-script","3425-return-position-impl-trait-in-traits","3453-f16-and-f128","3455-t-test","3463-crates-io-policy-update","3467-unsafe-pinned","3477-cargo-check-lang-policy","3484-unsafe-extern-blocks","3491-remove-implicit-features","3493-precise-pre-release-cargo-update","3498-lifetime-capture-rules-2024","3501-edition-2024","3502-cargo-script","3503-frontmatter","3509-prelude-2024-future","3513-gen-blocks","3514-float-semantics","3516-public-private-dependencies","3519-arbitrary-self-types-v2","3529-cargo-path-bases","3531-macro-fragment-policy","3533-combine-infra-and-release-teams","3535-constants-in-patterns","3537-msrv-resolver","3543-patchable-function-entry","3550-new-range","3558-libtest-json","3559-rust-has-provenance","3593-unprefixed-guarded-strings","3595-move-crates-io-team-under-dev-tools","3599-compiler-team-reorganisation","3606-temporary-lifetimes-in-tail-expressions","3614-project-goals","3617-precise-capturing","3621-derive-smart-pointer","3627-match-ergonomics-2024","3637-guard-patterns","3646-remove-crate-transfer-mediation-policy","3654-return-type-notation","3660-crates-io-crate-deletions","3662-mergeable-rustdoc-cross-crate-info","3668-async-closures","3671-promote-aarch64-apple-darwin-to-tier-1","3672-Project-Goals-2024h2","3673-rustdoc-types-maintainers","3695-cfg-boolean-literals","3. How to read rustdoc output","4. How to write documentation","command-line-arguments","2. Command-line Arguments","4. Lints","4.3. Lint Listing","7. Platform Support","7.4. *-apple-darwin","7.5. *-apple-ios","7.11. arm-none-eabi","8. Targets","12. Checking Conditional Configurations","14. Symbol Mangling","contributing","3. Breaking changes","6. The library team","1. How to build and run the compiler","2. Testing the compiler","2.1. Running tests","2.4. Compiletest","2.5. Ecosystem testing","3. Debugging the compiler","4. Profiling the compiler","19. Notification groups","28. Queries: demand-driven compilation","32. Rustdoc internals","35. rustc_driver and rustc_interface","36. Syntax and the AST","37. The HIR (High-level IR)","39. The MIR (Mid-level IR)","44. Generic parameter definitions","44.2. Early vs Late bound parameters","45. The ty module: representing types","47. Parameter Environments","49. Trait solving","49.5. Chalk-based trait solving","49.6. Next-gen trait solving","50. Type checking","50.4. Opaque Types","56. The borrow checker","56.1. Tracking moves and initialization","56.4. Region inference","57. Errors and Lints","61. Constant evaluation","64. Code Generation","profile-guided-optimization","2. Lexical structure","identifiers","3. Macros","6. Items","attributes","7. Attributes","8. Statements and expressions","8.2. Expressions","10. Type system","10.1. Types","12. Names","13. Memory model","16. Unsafety","20. Appendices","1. Meet Safe and Unsafe","2. Data Layout","references","3. Ownership","lifetime-elision","subtyping","4. Type Conversions","5. Uninitialized Memory","6. Ownership Based Resource Management","destructors","7. Unwinding","concurrency","8. Concurrency","9. Implementing Vec","10. Implementing Arc and Mutex","10.1. Arc","12. Beneath std","The Unstable Book","1. Compiler flags","2. Language features","3. Library Features","3. Library Usage with build.rs","3.1. Tutorial","5. Customizing the Generated Bindings","1. Examples","2. Reference","2.17. Supported Types","2.18. #[wasm_bindgen] Attributes","2.18.1. On JavaScript Imports","2.18.2. On Rust Exports","3. web-sys","4. Testing with wasm-bindgen-test","5. Contributing to wasm-bindgen","5.2. Internal Design","5.3. js-sys","5.4. web-sys","1. Fuzzing with cargo-fuzz","2. Fuzzing with afl.rs","Platforms","Triagebot","Community","Compiler","Cross Compilation","Prioritization","Steering Meeting","crates.io","Governance","Moderation","Infrastructure","Policies","Guidelines","Documentation","Language","Release","1. What is Chalk?","3. Representing and manipulating types","3.2. Rust types","3.4. Operations","4. Lowering Rust IR to logic","5. Canonical queries","6. Chalk engine","6.2. Logic","7. Chalk recursive solver","title-page","profiling","4. Command Line Tool","4.2. build","5. Format","5.2. Configuration","5.3. Theme","7. For Developers","glossary","3. Data layout","4. Validity","5. Optimizations","2. Idioms","2.9. Foreign function interface (FFI)","3. Design Patterns","3.1. Behavioural","3.2. Creational","3.3. Structural","3.4. Foreign function interface (FFI)","4. Anti-patterns","5. Functional Programming","6. Additional Resources","2. A Bad Stack","3. An Ok Stack","4. A Persistent Stack","5. A Bad Safe Deque","6. An Ok Unsafe Queue","7. A Production Unsafe Deque","8. A Bunch of Silly Lists","1. Syntax Extensions","2. Declarative Macros","2.3. Minutiae","2.4. Patterns","2.5. Building Blocks","2.5.2. Counting","3. Procedural Macros","3.1. A Methodical Introduction","1. Floating-point Math","2. Target features","5. Performance profiling","Effective Rust","1. Types","iterators","2. Traits","lifetimes","3. Concepts","4. Dependencies","visibility","documentation","5. Tooling","6. Beyond Standard Rust","ownership","stability","Demystifying Async/Await in Rust","2. Terminology","3. Let's Build a Runtime","2. Section 1 - Hello Rust","3. Section 2 - Stretch Goals","4. Section 3 - Generating Maps","5. Section 4 - Making A Game","2. Software Assurance","3. Rust Zero-Crash Course","4. Understanding Memory Safety and Exploitation","16. Appendix","2. Using the Wasmtime CLI","3. Using the Wasmtime API","3.1. Rust","4. Further Examples","4.1. Debugging WebAssembly","4.2. Profiling WebAssembly","5. Stability","6. Security","7. Contributing","7.11. Maintainer Guidelines"];var N=N;const booksIndex=[{"name":C[0],"url":"https://doc.rust-lang.org/stable/book/","pages":[[C[0],C[856],N],["Foreword","foreword",N],[C[21],"ch00-00-introduction",N],[C[1],"ch01-00-getting-started",N],[C[32],"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 Construct","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 Library’s 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 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[21],"intro",N],[C[22],"01_getting_started/01_chapter",N],["2.1. Why Async?","01_getting_started/02_why_async",[C[22]]],["2.2. The State of Asynchronous Rust","01_getting_started/03_state_of_async_rust",[C[22]]],["2.3. async/.await Primer","01_getting_started/04_async_await_primer",[C[22]]],[C[23],"02_execution/01_chapter",N],["3.1. The Future Trait","02_execution/02_future",[C[23]]],["3.2. Task Wakeups with Waker","02_execution/03_wakeups",[C[23]]],["3.3. Applied: Build an Executor","02_execution/04_executor",[C[23]]],["3.4. Executors and System IO","02_execution/05_io",[C[23]]],["4. async/await","03_async_await/01_chapter",N],["5. Pinning","04_pinning/01_chapter",N],[C[24],"05_streams/01_chapter",N],["6.1. Iteration and Concurrency","05_streams/02_iteration_and_concurrency",[C[24]]],[C[25],"06_multiple_futures/01_chapter",N],["7.1. join!","06_multiple_futures/02_join",[C[25]]],["7.2. select!","06_multiple_futures/03_select",[C[25]]],["7.3. Spawning","06_multiple_futures/04_spawning",[C[25]]],[C[26],"07_workarounds/01_chapter",N],["8.1. ? in async Blocks","07_workarounds/02_err_in_async_blocks",[C[26]]],["8.2. Send Approximation","07_workarounds/03_send_approximation",[C[26]]],["8.3. Recursion","07_workarounds/04_recursion",[C[26]]],["8.4. async in Traits","07_workarounds/05_async_in_traits",[C[26]]],["9. The Async Ecosystem","08_ecosystem/00_chapter",N],[C[27],"09_example/00_intro",N],["10.1. Running Asynchronous Code","09_example/01_running_async_code",[C[27]]],["10.2. Handling Connections Concurrently","09_example/02_handling_connections_concurrently",[C[27]]],["10.3. Testing the Server","09_example/03_tests",[C[27]]],["13. Appendix: Translations of the Book","12_appendix/01_translations",N]]},{"name":"Rust Edition Guide Book","url":"https://doc.rust-lang.org/stable/edition-guide/","pages":[[C[21],C[48],N],[C[28],"editions/index",N],["1.1. Creating a new project","editions/creating-a-new-project",[C[28]]],["1.2. Transitioning an existing project to a new edition","editions/transitioning-an-existing-project-to-a-new-edition",[C[28]]],["1.3. Advanced migrations","editions/advanced-migrations",[C[28]]],["2. Rust 2015","rust-2015/index",N],[C[29],"rust-2018/index",N],["3.1. Path and module system changes","rust-2018/path-changes",[C[29]]],["3.2. Anonymous trait function parameters deprecated","rust-2018/trait-fn-parameters",[C[29]]],["3.3. New keywords","rust-2018/new-keywords",[C[29]]],["3.4. Method dispatch for raw pointers to inference variables","rust-2018/tyvar-behind-raw-pointer",[C[29]]],["3.5. Cargo changes","rust-2018/cargo",[C[29]]],[C[30],"rust-2021/index",N],["4.1. Additions to the prelude","rust-2021/prelude",[C[30]]],["4.2. Default Cargo feature resolver","rust-2021/default-cargo-resolver",[C[30]]],["4.3. IntoIterator for arrays","rust-2021/IntoIterator-for-arrays",[C[30]]],["4.4. Disjoint capture in closures","rust-2021/disjoint-capture-in-closures",[C[30]]],["4.5. Panic macro consistency","rust-2021/panic-macro-consistency",[C[30]]],["4.6. Reserving syntax","rust-2021/reserving-syntax",[C[30]]],["4.7. Warnings promoted to errors","rust-2021/warnings-promoted-to-error",[C[30]]],["4.8. Or patterns in macro-rules","rust-2021/or-patterns-macro-rules",[C[30]]],["4.9. C-string literals","rust-2021/c-string-literals",[C[30]]],[C[31],"rust-2024/index",N],["5.1. Additions to the prelude","rust-2024/prelude",[C[31]]],["5.2. Add IntoIterator for Box<[T]>","rust-2024/intoiterator-box-slice",[C[31]]],["5.3. unsafe_op_in_unsafe_fn warning","rust-2024/unsafe-op-in-unsafe-fn",[C[31]]],["5.4. RPIT lifetime capture","rust-2024/rpit-lifetime-capture",[C[31]]],["5.5. Disallow references to static mut","rust-2024/static-mut-reference",[C[31]]],["5.6. Cargo: Remove implicit features","rust-2024/cargo-remove-implicit-features",[C[31]]],["5.7. Cargo: Table and key name consistency","rust-2024/cargo-table-key-names",[C[31]]],["5.8. Cargo: Reject unused inherited default-features","rust-2024/cargo-inherited-default-features",[C[31]]],["5.9. Rustfmt: Combine all delimited exprs as last argument","rust-2024/rustfmt-overflow-delimited-expr",[C[31]]],["5.10. gen keyword","rust-2024/gen-keyword",[C[31]]],["5.11. Macro fragment specifiers","rust-2024/macro-fragment-specifiers",[C[31]]],["5.12. Never type fallback change","rust-2024/never-type-fallback",[C[31]]],["5.13. unsafe extern blocks","rust-2024/unsafe-extern",[C[31]]],["5.14. Unsafe attributes","rust-2024/unsafe-attributes",[C[31]]]]},{"name":"The Cargo Book","url":"https://doc.rust-lang.org/cargo/","pages":[[C[21],"index",N],[C[1],"getting-started/index",N],[C[32],"getting-started/installation",[C[1]]],["1.2. First Steps with Cargo","getting-started/first-steps",[C[1]]],[C[33],"guide/index",N],["2.1. Why Cargo Exists","guide/why-cargo-exists",[C[33]]],["2.2. Creating a New Package","guide/creating-a-new-project",[C[33]]],["2.3. Working on an Existing Package","guide/working-on-an-existing-project",[C[33]]],["2.4. Dependencies","guide/dependencies",[C[33]]],["2.5. Package Layout","guide/project-layout",[C[33]]],["2.6. Cargo.toml vs Cargo.lock","guide/cargo-toml-vs-cargo-lock",[C[33]]],["2.7. Tests","guide/tests",[C[33]]],["2.8. Continuous Integration","guide/continuous-integration",[C[33]]],["2.9. Cargo Home","guide/cargo-home",[C[33]]],["2.10. Build Cache","guide/build-cache",[C[33]]],[C[34],C[51],N],[C[35],"reference/specifying-dependencies",[C[34]]],["3.1.1. Overriding Dependencies","reference/overriding-dependencies",[C[34],C[35]]],[C[36],"reference/manifest",[C[34]]],["3.2.1. Cargo Targets","reference/cargo-targets",[C[34],C[36]]],["3.3. Workspaces","reference/workspaces",[C[34]]],[C[37],"reference/features",[C[34]]],["3.4.1. Features Examples","reference/features-examples",[C[34],C[37]]],["3.5. Profiles","reference/profiles",[C[34]]],["3.6. Configuration","reference/config",[C[34]]],["3.7. Environment Variables","reference/environment-variables",[C[34]]],[C[38],"reference/build-scripts",[C[34]]],["3.8.1. Build Script Examples","reference/build-script-examples",[C[34],C[38]]],["3.9. Publishing on crates.io","reference/publishing",[C[34]]],["3.10. Package ID Specifications","reference/pkgid-spec",[C[34]]],["3.11. Source Replacement","reference/source-replacement",[C[34]]],["3.12. External Tools","reference/external-tools",[C[34]]],[C[39],"reference/registries",[C[34]]],[C[40],"reference/registry-authentication",[C[34],C[39]]],["3.13.1.1. Credential Provider Protocol","reference/credential-provider-protocol",[C[34],C[39],C[40]]],[C[41],"reference/running-a-registry",[C[34],C[39]]],["3.13.2.1. Registry Index","reference/registry-index",[C[34],C[39],C[41]]],["3.13.2.2. Registry Web API","reference/registry-web-api",[C[34],C[39],C[41]]],["3.14. Dependency Resolution","reference/resolver",[C[34]]],["3.15. SemVer Compatibility","reference/semver",[C[34]]],["3.16. Future incompat report","reference/future-incompat-report",[C[34]]],["3.17. Reporting build timings","reference/timings",[C[34]]],["3.18. Lints","reference/lints",[C[34]]],["3.19. Unstable Features","reference/unstable",[C[34]]],[C[42],C[55],N],[C[43],"commands/general-commands",[C[42]]],["4.1.1. cargo","commands/cargo",[C[42],C[43]]],["4.1.2. cargo help","commands/cargo-help",[C[42],C[43]]],["4.1.3. cargo version","commands/cargo-version",[C[42],C[43]]],[C[44],"commands/build-commands",[C[42]]],["4.2.1. cargo bench","commands/cargo-bench",[C[42],C[44]]],["4.2.2. cargo build","commands/cargo-build",[C[42],C[44]]],["4.2.3. cargo check","commands/cargo-check",[C[42],C[44]]],["4.2.4. cargo clean","commands/cargo-clean",[C[42],C[44]]],["4.2.5. cargo doc","commands/cargo-doc",[C[42],C[44]]],["4.2.6. cargo fetch","commands/cargo-fetch",[C[42],C[44]]],["4.2.7. cargo fix","commands/cargo-fix",[C[42],C[44]]],["4.2.8. cargo run","commands/cargo-run",[C[42],C[44]]],["4.2.9. cargo rustc","commands/cargo-rustc",[C[42],C[44]]],["4.2.10. cargo rustdoc","commands/cargo-rustdoc",[C[42],C[44]]],["4.2.11. cargo test","commands/cargo-test",[C[42],C[44]]],["4.2.12. cargo report","commands/cargo-report",[C[42],C[44]]],[C[45],"commands/manifest-commands",[C[42]]],["4.3.1. cargo add","commands/cargo-add",[C[42],C[45]]],["4.3.2. cargo generate-lockfile","commands/cargo-generate-lockfile",[C[42],C[45]]],["4.3.3. cargo locate-project","commands/cargo-locate-project",[C[42],C[45]]],["4.3.4. cargo metadata","commands/cargo-metadata",[C[42],C[45]]],["4.3.5. cargo pkgid","commands/cargo-pkgid",[C[42],C[45]]],["4.3.6. cargo remove","commands/cargo-remove",[C[42],C[45]]],["4.3.7. cargo tree","commands/cargo-tree",[C[42],C[45]]],["4.3.8. cargo update","commands/cargo-update",[C[42],C[45]]],["4.3.9. cargo vendor","commands/cargo-vendor",[C[42],C[45]]],["4.3.10. cargo verify-project","commands/cargo-verify-project",[C[42],C[45]]],[C[46],"commands/package-commands",[C[42]]],["4.4.1. cargo init","commands/cargo-init",[C[42],C[46]]],["4.4.2. cargo install","commands/cargo-install",[C[42],C[46]]],["4.4.3. cargo new","commands/cargo-new",[C[42],C[46]]],["4.4.4. cargo search","commands/cargo-search",[C[42],C[46]]],["4.4.5. cargo uninstall","commands/cargo-uninstall",[C[42],C[46]]],[C[47],"commands/publishing-commands",[C[42]]],["4.5.1. cargo login","commands/cargo-login",[C[42],C[47]]],["4.5.2. cargo logout","commands/cargo-logout",[C[42],C[47]]],["4.5.3. cargo owner","commands/cargo-owner",[C[42],C[47]]],["4.5.4. cargo package","commands/cargo-package",[C[42],C[47]]],["4.5.5. cargo publish","commands/cargo-publish",[C[42],C[47]]],["4.5.6. cargo yank","commands/cargo-yank",[C[42],C[47]]],["5. FAQ","faq",N],["6. Appendix: Glossary",C[70],N],["7. Appendix: Git Authentication","appendix/git-authentication",N]]},{"name":"Rust and WebAssembly Book","url":"https://rustwasm.github.io/docs/book/","pages":[[C[53],C[48],N],["2. Why Rust and WebAssembly?","why-rust-and-webassembly",N],[C[49],"background-and-concepts",N],["3.1. What is WebAssembly?","what-is-webassembly",[C[49]]],[C[50],"game-of-life/introduction",N],["4.1. Setup","game-of-life/setup",[C[50]]],["4.2. Hello, World!","game-of-life/hello-world",[C[50]]],["4.3. Rules","game-of-life/rules",[C[50]]],["4.4. Implementing Life","game-of-life/implementing",[C[50]]],["4.5. Testing Life","game-of-life/testing",[C[50]]],["4.6. Debugging","game-of-life/debugging",[C[50]]],["4.7. Adding Interactivity","game-of-life/interactivity",[C[50]]],["4.8. Time Profiling","game-of-life/time-profiling",[C[50]]],["4.9. Shrinking .wasm Size","game-of-life/code-size",[C[50]]],["4.10. Publishing to npm","game-of-life/publishing-to-npm",[C[50]]],[C[52],C[51],N],["5.1. Crates You Should Know","reference/crates",[C[52]]],["5.2. Tools You Should Know","reference/tools",[C[52]]],["5.3. Project Templates","reference/project-templates",[C[52]]],["5.4. Debugging","reference/debugging",[C[52]]],["5.5. Time Profiling","reference/time-profiling",[C[52]]],["5.6. Shrinking .wasm Size","reference/code-size",[C[52]]],["5.7. JavaScript Interoperation","reference/js-ffi",[C[52]]],["5.8. Which Crates Will Work Off-the-Shelf with WebAssembly?","reference/which-crates-work-with-wasm",[C[52]]],["5.9. How to Add WebAssembly Support to a General-Purpose Crate","reference/add-wasm-support-to-crate",[C[52]]],["5.10. Deploying Rust and WebAssembly to Production","reference/deploying-to-production",[C[52]]]]},{"name":"Wasm-Pack Book","url":"https://rustwasm.github.io/docs/wasm-pack/","pages":[[C[53],C[48],N],["2. Quickstart","quickstart",N],[C[54],"prerequisites/index",N],["3.1. npm (optional)","prerequisites/npm",[C[54]]],["3.2. considerations","prerequisites/considerations",[C[54]]],["3.3. Non-rustup setups","prerequisites/non-rustup-setups",[C[54]]],[C[56],C[55],N],["4.1. new","commands/new",[C[56]]],[C[859],"commands/build",[C[56]]],["4.3. test","commands/test",[C[56]]],["4.4. pack and publish","commands/pack-and-publish",[C[56]]],["4.5. init (DEPRECATED)","commands/init",[C[56]]],[C[57],"tutorials/index",N],[C[58],"tutorials/hybrid-applications-with-webpack/index",[C[57]]],["5.1.1. Getting started","tutorials/hybrid-applications-with-webpack/getting-started",[C[57],C[58]]],["5.1.2. Using your library","tutorials/hybrid-applications-with-webpack/using-your-library",[C[57],C[58]]],[C[59],"tutorials/npm-browser-packages/index",[C[57]]],[C[60],"tutorials/npm-browser-packages/getting-started",[C[57],C[59]]],["5.2.1.1. Manual Setup","tutorials/npm-browser-packages/getting-started/manual-setup",[C[57],C[59],C[60]]],[C[61],"tutorials/npm-browser-packages/template-deep-dive/index",[C[57],C[59]]],["5.2.2.1. Cargo.toml","tutorials/npm-browser-packages/template-deep-dive/cargo-toml",[C[57],C[59],C[61]]],["5.2.2.2. src/lib.rs","tutorials/npm-browser-packages/template-deep-dive/src-lib-rs",[C[57],C[59],C[61]]],["5.2.2.3. src/utils.rs","tutorials/npm-browser-packages/template-deep-dive/src-utils-rs",[C[57],C[59],C[61]]],["5.2.2.4. wee_alloc","tutorials/npm-browser-packages/template-deep-dive/wee_alloc",[C[57],C[59],C[61]]],["5.2.2.5. tests/web.rs","tutorials/npm-browser-packages/template-deep-dive/tests-web-rs",[C[57],C[59],C[61]]],["5.2.3. Building your project","tutorials/npm-browser-packages/building-your-project",[C[57],C[59]]],["5.2.4. Testing your project","tutorials/npm-browser-packages/testing-your-project",[C[57],C[59]]],["5.2.5. Packaging and publishing","tutorials/npm-browser-packages/packaging-and-publishing",[C[57],C[59]]],["5.2.6. Using your library","tutorials/npm-browser-packages/using-your-library",[C[57],C[59]]],["6. Cargo.toml Configuration","cargo-toml-configuration",N],[C[928],C[746],N]]},{"name":"The Embedded Rust Book","url":"https://rust-embedded.github.io/book/","pages":[[C[53],"intro/index",N],["1.1. Hardware","intro/hardware",[C[53]]],["1.2. no_std","intro/no-std",[C[53]]],["1.3. Tooling","intro/tooling",[C[53]]],[C[62],"intro/install",[C[53]]],["1.4.1. Linux","intro/install/linux",[C[53],C[62]]],["1.4.2. MacOS","intro/install/macos",[C[53],C[62]]],["1.4.3. Windows","intro/install/windows",[C[53],C[62]]],["1.4.4. Verify Installation","intro/install/verify",[C[53],C[62]]],[C[63],"start/index",N],["2.1. QEMU","start/qemu",[C[63]]],["2.2. Hardware","start/hardware",[C[63]]],["2.3. Memory-mapped Registers","start/registers",[C[63]]],["2.4. Semihosting","start/semihosting",[C[63]]],["2.5. Panicking","start/panicking",[C[63]]],["2.6. Exceptions","start/exceptions",[C[63]]],["2.7. Interrupts","start/interrupts",[C[63]]],["2.8. IO","start/io",[C[63]]],[C[64],"peripherals/index",N],["3.1. A first attempt in Rust","peripherals/a-first-attempt",[C[64]]],["3.2. The Borrow Checker","peripherals/borrowck",[C[64]]],["3.3. Singletons","peripherals/singletons",[C[64]]],[C[65],"static-guarantees/index",N],["4.1. Typestate Programming","static-guarantees/typestate-programming",[C[65]]],["4.2. Peripherals as State Machines","static-guarantees/state-machines",[C[65]]],["4.3. Design Contracts","static-guarantees/design-contracts",[C[65]]],["4.4. Zero Cost Abstractions","static-guarantees/zero-cost-abstractions",[C[65]]],["5. Portability","portability/index",N],["6. Concurrency","concurrency/index",N],["7. Collections","collections/index",N],[C[66],"design-patterns/index",N],[C[67],"design-patterns/hal/index",[C[66]]],["8.1.1. Checklist","design-patterns/hal/checklist",[C[66],C[67]]],["8.1.2. Naming","design-patterns/hal/naming",[C[66],C[67]]],["8.1.3. Interoperability","design-patterns/hal/interoperability",[C[66],C[67]]],["8.1.4. Predictability","design-patterns/hal/predictability",[C[66],C[67]]],["8.1.5. GPIO","design-patterns/hal/gpio",[C[66],C[67]]],["9. Tips for embedded C developers","c-tips/index",N],[C[68],"interoperability/index",N],["10.1. A little C with your Rust","interoperability/c-with-rust",[C[68]]],["10.2. A little Rust with your C","interoperability/rust-with-c",[C[68]]],[C[69],"unsorted/index",N],["11.1. Optimizations: The speed size tradeoff","unsorted/speed-vs-size",[C[69]]],["11.2. Performing Math Functionality","unsorted/math",[C[69]]],["Appendix A: Glossary",C[70],N]]},{"name":"The Rust Cookbook","url":"https://rust-lang-nursery.github.io/rust-cookbook/","pages":[["Table of Contents","intro",N],["About","about",N],[C[71],"algorithms",N],["1.1. Generate Random Values","algorithms/randomness",[C[71]]],["1.2. Sort a Vector","algorithms/sorting",[C[71]]],[C[72],"cli",N],["2.1. Argument Parsing","cli/arguments",[C[72]]],["2.2. ANSI Terminal","cli/ansi_terminal",[C[72]]],[C[73],"compression",N],["3.1. Working with Tarballs","compression/tar",[C[73]]],[C[74],C[804],N],["4.1. Explicit Threads","concurrency/threads",[C[74]]],["4.2. Data Parallelism","concurrency/parallel",[C[74]]],[C[75],"cryptography",N],["5.1. Hashing","cryptography/hashing",[C[75]]],["5.2. Encryption","cryptography/encryption",[C[75]]],[C[76],"data_structures",N],["6.1. Bitfield","data_structures/bitfield",[C[76]]],[C[77],"database",N],["7.1. SQLite","database/sqlite",[C[77]]],["7.2. Postgres","database/postgres",[C[77]]],[C[78],"datetime",N],["8.1. Duration and Calculation","datetime/duration",[C[78]]],["8.2. Parsing and Displaying","datetime/parse",[C[78]]],[C[79],"development_tools",N],[C[80],"development_tools/debugging",[C[79]]],["9.1.1. Log Messages","development_tools/debugging/log",[C[79],C[80]]],["9.1.2. Configure Logging","development_tools/debugging/config_log",[C[79],C[80]]],["9.2. Versioning","development_tools/versioning",[C[79]]],["9.3. Build Time Tooling","development_tools/build_tools",[C[79]]],[C[81],"encoding",N],["10.1. Character Sets","encoding/strings",[C[81]]],["10.2. CSV processing","encoding/csv",[C[81]]],["10.3. Structured Data","encoding/complex",[C[81]]],[C[82],"errors",N],["11.1. Handle Error Variants","errors/handle",[C[82]]],[C[83],"file",N],["12.1. Read & Write","file/read-write",[C[83]]],["12.2. Directory Traversal","file/dir",[C[83]]],[C[84],"hardware",N],["13.1. Processor","hardware/processor",[C[84]]],[C[85],"mem",N],["14.1. Global Static","mem/global_static",[C[85]]],[C[86],"net",N],["15.1. Server","net/server",[C[86]]],[C[87],"os",N],["16.1. External Command","os/external",[C[87]]],[C[88],"science",N],[C[89],"science/mathematics",[C[88]]],["17.1.1. Linear Algebra","science/mathematics/linear_algebra",[C[88],C[89]]],["17.1.2. Trigonometry","science/mathematics/trigonometry",[C[88],C[89]]],["17.1.3. Complex Numbers","science/mathematics/complex_numbers",[C[88],C[89]]],["17.1.4. Statistics","science/mathematics/statistics",[C[88],C[89]]],["17.1.5. Miscellaneous","science/mathematics/miscellaneous",[C[88],C[89]]],[C[90],"text",N],["18.1. Regular Expressions","text/regex",[C[90]]],["18.2. String Parsing","text/string_parsing",[C[90]]],[C[91],"web",N],["19.1. Extracting Links","web/scraping",[C[91]]],["19.2. URL","web/url",[C[91]]],["19.3. Media Types","web/mime",[C[91]]],[C[92],"web/clients",[C[91]]],["19.4.1. Making Requests","web/clients/requests",[C[91],C[92]]],["19.4.2. Calling a Web API","web/clients/apis",[C[91],C[92]]],["19.4.3. Downloads","web/clients/download",[C[91],C[92]]],["19.4.4. Web Authentication","web/clients/authentication",[C[91],C[92]]]]},{"name":"Command line apps in Rust","url":"https://rust-cli.github.io/book/","pages":[["Getting started","index",N],[C[93],"tutorial/index",N],["1.1. Project setup","tutorial/setup",[C[93]]],["1.2. Parsing command line arguments","tutorial/cli-args",[C[93]]],["1.3. First implementation","tutorial/impl-draft",[C[93]]],["1.4. Nicer error reporting","tutorial/errors",[C[93]]],["1.5. Output for humans and machines","tutorial/output",[C[93]]],["1.6. Testing","tutorial/testing",[C[93]]],["1.7. Packaging and distributing a Rust tool","tutorial/packaging",[C[93]]],[C[94],"in-depth/index",N],["2.1. Signal handling","in-depth/signals",[C[94]]],["2.2. Using config files","in-depth/config-files",[C[94]]],["2.3. Exit codes","in-depth/exit-code",[C[94]]],["2.4. Communicating with humans","in-depth/human-communication",[C[94]]],["2.5. Communicating with machines","in-depth/machine-communication",[C[94]]],["2.6. Rendering documentation for your CLI apps","in-depth/docs",[C[94]]],["3. Resources","resources/index",N]]},{"name":"Rust by Example","url":"https://doc.rust-lang.org/stable/rust-by-example/","pages":[[C[21],"index",N],[C[95],"hello",N],["1.1. Comments","hello/comment",[C[95]]],[C[96],"hello/print",[C[95]]],["1.2.1. Debug","hello/print/print_debug",[C[95],C[96]]],[C[97],"hello/print/print_display",[C[95],C[96]]],["1.2.2.1. Testcase: List","hello/print/print_display/testcase_list",[C[95],C[96],C[97]]],["1.2.3. Formatting","hello/print/fmt",[C[95],C[96]]],[C[98],"primitives",N],["2.1. Literals and operators","primitives/literals",[C[98]]],["2.2. Tuples","primitives/tuples",[C[98]]],["2.3. Arrays and Slices","primitives/array",[C[98]]],[C[99],"custom_types",N],["3.1. Structures","custom_types/structs",[C[99]]],[C[100],"custom_types/enum",[C[99]]],["3.2.1. use","custom_types/enum/enum_use",[C[99],C[100]]],["3.2.2. C-like","custom_types/enum/c_like",[C[99],C[100]]],["3.2.3. Testcase: linked-list","custom_types/enum/testcase_linked_list",[C[99],C[100]]],["3.3. constants","custom_types/constants",[C[99]]],[C[101],"variable_bindings",N],["4.1. Mutability","variable_bindings/mut",[C[101]]],["4.2. Scope and Shadowing","variable_bindings/scope",[C[101]]],["4.3. Declare first","variable_bindings/declare",[C[101]]],["4.4. Freezing","variable_bindings/freeze",[C[101]]],[C[102],"types",N],["5.1. Casting","types/cast",[C[102]]],["5.2. Literals","types/literals",[C[102]]],["5.3. Inference","types/inference",[C[102]]],["5.4. Aliasing","types/alias",[C[102]]],[C[103],"conversion",N],["6.1. From and Into","conversion/from_into",[C[103]]],["6.2. TryFrom and TryInto","conversion/try_from_try_into",[C[103]]],["6.3. To and from Strings","conversion/string",[C[103]]],["7. Expressions","expression",N],[C[104],"flow_control",N],["8.1. if/else","flow_control/if_else",[C[104]]],[C[105],"flow_control/loop",[C[104]]],["8.2.1. Nesting and labels","flow_control/loop/nested",[C[104],C[105]]],["8.2.2. Returning from loops","flow_control/loop/return",[C[104],C[105]]],["8.3. while","flow_control/while",[C[104]]],["8.4. for and range","flow_control/for",[C[104]]],[C[106],"flow_control/match",[C[104]]],[C[107],"flow_control/match/destructuring",[C[104],C[106]]],["8.5.1.1. tuples","flow_control/match/destructuring/destructure_tuple",[C[104],C[106],C[107]]],["8.5.1.2. arrays/slices","flow_control/match/destructuring/destructure_slice",[C[104],C[106],C[107]]],["8.5.1.3. enums","flow_control/match/destructuring/destructure_enum",[C[104],C[106],C[107]]],["8.5.1.4. pointers/ref","flow_control/match/destructuring/destructure_pointers",[C[104],C[106],C[107]]],["8.5.1.5. structs","flow_control/match/destructuring/destructure_structures",[C[104],C[106],C[107]]],["8.5.2. Guards","flow_control/match/guard",[C[104],C[106]]],["8.5.3. Binding","flow_control/match/binding",[C[104],C[106]]],["8.6. if let","flow_control/if_let",[C[104]]],["8.7. let-else","flow_control/let_else",[C[104]]],["8.8. while let","flow_control/while_let",[C[104]]],[C[108],"fn",N],["9.1. Methods","fn/methods",[C[108]]],[C[109],"fn/closures",[C[108]]],["9.2.1. Capturing","fn/closures/capture",[C[108],C[109]]],["9.2.2. As input parameters","fn/closures/input_parameters",[C[108],C[109]]],["9.2.3. Type anonymity","fn/closures/anonymity",[C[108],C[109]]],["9.2.4. Input functions","fn/closures/input_functions",[C[108],C[109]]],["9.2.5. As output parameters","fn/closures/output_parameters",[C[108],C[109]]],[C[110],"fn/closures/closure_examples",[C[108],C[109]]],["9.2.6.1. Iterator::any","fn/closures/closure_examples/iter_any",[C[108],C[109],C[110]]],["9.2.6.2. Searching through iterators","fn/closures/closure_examples/iter_find",[C[108],C[109],C[110]]],["9.3. Higher Order Functions","fn/hof",[C[108]]],["9.4. Diverging functions","fn/diverging",[C[108]]],[C[111],"mod",N],["10.1. Visibility","mod/visibility",[C[111]]],["10.2. Struct visibility","mod/struct_visibility",[C[111]]],["10.3. The use declaration","mod/use",[C[111]]],["10.4. super and self","mod/super",[C[111]]],["10.5. File hierarchy","mod/split",[C[111]]],[C[112],"crates",N],["11.1. Creating a Library","crates/lib",[C[112]]],["11.2. Using a Library","crates/using_lib",[C[112]]],[C[113],"cargo",N],["12.1. Dependencies","cargo/deps",[C[113]]],["12.2. Conventions","cargo/conventions",[C[113]]],["12.3. Tests","cargo/test",[C[113]]],["12.4. Build Scripts","cargo/build_scripts",[C[113]]],[C[114],"attribute",N],["13.1. dead_code","attribute/unused",[C[114]]],["13.2. Crates","attribute/crate",[C[114]]],[C[115],"attribute/cfg",[C[114]]],["13.3.1. Custom","attribute/cfg/custom",[C[114],C[115]]],[C[116],"generics",N],["14.1. Functions","generics/gen_fn",[C[116]]],["14.2. Implementation","generics/impl",[C[116]]],["14.3. Traits","generics/gen_trait",[C[116]]],[C[117],"generics/bounds",[C[116]]],["14.4.1. Testcase: empty bounds","generics/bounds/testcase_empty",[C[116],C[117]]],["14.5. Multiple bounds","generics/multi_bounds",[C[116]]],["14.6. Where clauses","generics/where",[C[116]]],["14.7. New Type Idiom","generics/new_types",[C[116]]],[C[118],"generics/assoc_items",[C[116]]],["14.8.1. The Problem","generics/assoc_items/the_problem",[C[116],C[118]]],["14.8.2. Associated types","generics/assoc_items/types",[C[116],C[118]]],[C[119],"generics/phantom",[C[116]]],["14.9.1. Testcase: unit clarification","generics/phantom/testcase_units",[C[116],C[119]]],[C[120],"scope",N],["15.1. RAII","scope/raii",[C[120]]],[C[121],"scope/move",[C[120]]],["15.2.1. Mutability","scope/move/mut",[C[120],C[121]]],["15.2.2. Partial moves","scope/move/partial_move",[C[120],C[121]]],[C[122],"scope/borrow",[C[120]]],["15.3.1. Mutability","scope/borrow/mut",[C[120],C[122]]],["15.3.2. Aliasing","scope/borrow/alias",[C[120],C[122]]],["15.3.3. The ref pattern","scope/borrow/ref",[C[120],C[122]]],[C[123],"scope/lifetime",[C[120]]],["15.4.1. Explicit annotation","scope/lifetime/explicit",[C[120],C[123]]],["15.4.2. Functions","scope/lifetime/fn",[C[120],C[123]]],["15.4.3. Methods","scope/lifetime/methods",[C[120],C[123]]],["15.4.4. Structs","scope/lifetime/struct",[C[120],C[123]]],["15.4.5. Traits","scope/lifetime/trait",[C[120],C[123]]],["15.4.6. Bounds","scope/lifetime/lifetime_bounds",[C[120],C[123]]],["15.4.7. Coercion","scope/lifetime/lifetime_coercion",[C[120],C[123]]],["15.4.8. Static","scope/lifetime/static_lifetime",[C[120],C[123]]],["15.4.9. Elision","scope/lifetime/elision",[C[120],C[123]]],[C[124],"trait",N],["16.1. Derive","trait/derive",[C[124]]],["16.2. Returning Traits with dyn","trait/dyn",[C[124]]],["16.3. Operator Overloading","trait/ops",[C[124]]],["16.4. Drop","trait/drop",[C[124]]],["16.5. Iterators","trait/iter",[C[124]]],["16.6. impl Trait","trait/impl_trait",[C[124]]],["16.7. Clone","trait/clone",[C[124]]],["16.8. Supertraits","trait/supertraits",[C[124]]],["16.9. Disambiguating overlapping traits","trait/disambiguating",[C[124]]],[C[125],"macros",N],[C[126],"macros/syntax",[C[125]]],["17.1.1. Designators","macros/designators",[C[125],C[126]]],["17.1.2. Overload","macros/overload",[C[125],C[126]]],["17.1.3. Repeat","macros/repeat",[C[125],C[126]]],["17.2. DRY (Don't Repeat Yourself)","macros/dry",[C[125]]],["17.3. DSL (Domain Specific Languages)","macros/dsl",[C[125]]],["17.4. Variadics","macros/variadics",[C[125]]],[C[127],"error",N],["18.1. panic","error/panic",[C[127]]],["18.2. abort & unwind","error/abort_unwind",[C[127]]],[C[128],"error/option_unwrap",[C[127]]],["18.3.1. Unpacking options with ?","error/option_unwrap/question_mark",[C[127],C[128]]],["18.3.2. Combinators: map","error/option_unwrap/map",[C[127],C[128]]],["18.3.3. Combinators: and_then","error/option_unwrap/and_then",[C[127],C[128]]],["18.3.4. Defaults: or, or_else, get_or_insert, get_or_insert_with","error/option_unwrap/defaults",[C[127],C[128]]],[C[129],"error/result",[C[127]]],["18.4.1. map for Result","error/result/result_map",[C[127],C[129]]],["18.4.2. aliases for Result","error/result/result_alias",[C[127],C[129]]],["18.4.3. Early returns","error/result/early_returns",[C[127],C[129]]],["18.4.4. Introducing ?","error/result/enter_question_mark",[C[127],C[129]]],[C[130],"error/multiple_error_types",[C[127]]],["18.5.1. Pulling Results out of Options","error/multiple_error_types/option_result",[C[127],C[130]]],["18.5.2. Defining an error type","error/multiple_error_types/define_error_type",[C[127],C[130]]],["18.5.3. Boxing errors","error/multiple_error_types/boxing_errors",[C[127],C[130]]],["18.5.4. Other uses of ?","error/multiple_error_types/reenter_question_mark",[C[127],C[130]]],["18.5.5. Wrapping errors","error/multiple_error_types/wrap_error",[C[127],C[130]]],["18.6. Iterating over Results","error/iter_result",[C[127]]],[C[131],"std",N],["19.1. Box, stack and heap","std/box",[C[131]]],["19.2. Vectors","std/vec",[C[131]]],["19.3. Strings","std/str",[C[131]]],["19.4. Option","std/option",[C[131]]],[C[132],"std/result",[C[131]]],["19.5.1. ?","std/result/question_mark",[C[131],C[132]]],["19.6. panic!","std/panic",[C[131]]],[C[133],"std/hash",[C[131]]],["19.7.1. Alternate/custom key types","std/hash/alt_key_types",[C[131],C[133]]],["19.7.2. HashSet","std/hash/hashset",[C[131],C[133]]],["19.8. Rc","std/rc",[C[131]]],["19.9. Arc","std/arc",[C[131]]],[C[134],"std_misc",N],[C[135],"std_misc/threads",[C[134]]],["20.1.1. Testcase: map-reduce","std_misc/threads/testcase_mapreduce",[C[134],C[135]]],["20.2. Channels","std_misc/channels",[C[134]]],["20.3. Path","std_misc/path",[C[134]]],[C[136],"std_misc/file",[C[134]]],["20.4.1. open","std_misc/file/open",[C[134],C[136]]],["20.4.2. create","std_misc/file/create",[C[134],C[136]]],["20.4.3. read_lines","std_misc/file/read_lines",[C[134],C[136]]],[C[137],"std_misc/process",[C[134]]],["20.5.1. Pipes","std_misc/process/pipe",[C[134],C[137]]],["20.5.2. Wait","std_misc/process/wait",[C[134],C[137]]],["20.6. Filesystem Operations","std_misc/fs",[C[134]]],[C[138],"std_misc/arg",[C[134]]],["20.7.1. Argument parsing","std_misc/arg/matching",[C[134],C[138]]],["20.8. Foreign Function Interface","std_misc/ffi",[C[134]]],[C[139],"testing",N],["21.1. Unit testing","testing/unit_testing",[C[139]]],["21.2. Documentation testing","testing/doc_testing",[C[139]]],["21.3. Integration testing","testing/integration_testing",[C[139]]],["21.4. Dev-dependencies","testing/dev_dependencies",[C[139]]],[C[140],"unsafe",N],["22.1. Inline assembly","unsafe/asm",[C[140]]],[C[141],"compatibility",N],["23.1. Raw identifiers","compatibility/raw_identifiers",[C[141]]],[C[142],"meta",N],["24.1. Documentation","meta/doc",[C[142]]],["24.2. Playground","meta/playground",[C[142]]]]},{"name":"Rust RFC","url":"https://rust-lang.github.io/rfcs/","pages":[[C[21],C[48],N],["Guidelines for compiler changes","compiler_changes",N],["Guidelines for language changes","lang_changes",N],["Guidelines for library changes","libs_changes",N],[C[143],C[143],N],[C[144],C[144],N],[C[145],C[145],N],[C[146],C[146],N],[C[147],C[147],N],[C[148],C[148],N],[C[149],C[149],N],[C[150],C[150],N],[C[151],C[151],N],[C[152],C[152],N],[C[153],C[153],N],[C[154],C[154],N],[C[155],C[155],N],[C[156],C[156],N],[C[157],C[157],N],[C[158],C[158],N],[C[159],C[159],N],[C[160],C[160],N],[C[161],C[161],N],[C[162],C[162],N],[C[163],C[163],N],[C[164],C[164],N],[C[165],C[165],N],[C[166],C[166],N],[C[167],C[167],N],[C[168],C[168],N],[C[169],C[169],N],[C[170],C[170],N],[C[171],C[171],N],[C[172],C[172],N],[C[173],C[173],N],[C[174],C[174],N],[C[175],C[175],N],[C[176],C[176],N],[C[177],C[177],N],[C[178],C[178],N],[C[179],C[179],N],[C[180],C[180],N],[C[181],C[181],N],[C[182],C[182],N],[C[183],C[183],N],[C[184],C[184],N],[C[185],C[185],N],[C[186],C[186],N],[C[187],C[187],N],[C[188],C[188],N],[C[189],C[189],N],[C[190],C[190],N],["0168-mod","0168-mod",N],[C[191],C[191],N],[C[192],C[192],N],[C[193],C[193],N],[C[194],C[194],N],[C[195],C[195],N],[C[196],C[196],N],[C[197],C[197],N],[C[198],C[198],N],[C[199],C[199],N],[C[200],C[200],N],[C[201],C[201],N],[C[202],C[202],N],[C[203],C[203],N],[C[204],C[204],N],[C[205],C[205],N],[C[206],C[206],N],[C[207],C[207],N],[C[208],C[208],N],[C[209],C[209],N],[C[210],C[210],N],[C[211],C[211],N],[C[212],C[212],N],[C[213],C[213],N],[C[214],C[214],N],[C[215],C[215],N],[C[216],C[216],N],[C[217],C[217],N],[C[218],C[218],N],[C[219],C[219],N],[C[220],C[220],N],[C[221],C[221],N],[C[222],C[222],N],[C[223],C[223],N],[C[224],C[224],N],[C[225],C[225],N],[C[226],C[226],N],[C[227],C[227],N],[C[228],C[228],N],[C[229],C[229],N],[C[230],C[230],N],[C[231],C[231],N],[C[232],C[232],N],[C[233],C[233],N],[C[234],C[234],N],[C[235],C[235],N],[C[236],C[236],N],[C[237],C[237],N],[C[238],C[238],N],[C[239],C[239],N],[C[240],C[240],N],[C[241],C[241],N],[C[242],C[242],N],[C[243],C[243],N],[C[244],C[244],N],[C[245],C[245],N],[C[246],C[246],N],[C[247],C[247],N],[C[248],C[248],N],[C[249],C[249],N],[C[250],C[250],N],[C[251],C[251],N],[C[252],C[252],N],[C[253],C[253],N],[C[254],C[254],N],[C[255],C[255],N],[C[256],C[256],N],[C[257],C[257],N],[C[258],C[258],N],[C[259],C[259],N],[C[260],C[260],N],[C[261],C[261],N],[C[262],C[262],N],[C[263],C[263],N],[C[264],C[264],N],[C[265],C[265],N],[C[266],C[266],N],[C[267],C[267],N],[C[268],C[268],N],[C[269],C[269],N],[C[270],C[270],N],[C[271],C[271],N],[C[272],C[272],N],[C[273],C[273],N],[C[274],C[274],N],[C[275],C[275],N],[C[276],C[276],N],[C[277],C[277],N],[C[278],C[278],N],[C[279],C[279],N],[C[280],C[280],N],[C[281],C[281],N],[C[282],C[282],N],[C[283],C[283],N],[C[284],C[284],N],[C[285],C[285],N],[C[286],C[286],N],[C[287],C[287],N],[C[288],C[288],N],[C[289],C[289],N],[C[290],C[290],N],[C[291],C[291],N],[C[292],C[292],N],[C[293],C[293],N],[C[294],C[294],N],[C[295],C[295],N],[C[296],C[296],N],[C[297],C[297],N],[C[298],C[298],N],[C[299],C[299],N],[C[300],C[300],N],[C[301],C[301],N],[C[302],C[302],N],[C[303],C[303],N],[C[304],C[304],N],[C[305],C[305],N],[C[306],C[306],N],[C[307],C[307],N],[C[308],C[308],N],[C[309],C[309],N],[C[310],C[310],N],[C[311],C[311],N],[C[312],C[312],N],[C[313],C[313],N],[C[314],C[314],N],[C[315],C[315],N],[C[316],C[316],N],[C[317],C[317],N],[C[318],C[318],N],[C[319],C[319],N],[C[320],C[320],N],[C[321],C[321],N],[C[322],C[322],N],[C[323],C[323],N],[C[324],C[324],N],[C[325],C[325],N],[C[326],C[326],N],[C[327],C[327],N],[C[328],C[328],N],[C[329],C[329],N],[C[330],C[330],N],[C[331],C[331],N],[C[332],C[332],N],[C[333],C[333],N],[C[334],C[334],N],[C[335],C[335],N],[C[336],C[336],N],[C[337],C[337],N],["1191-hir","1191-hir",N],[C[338],C[338],N],[C[339],C[339],N],[C[340],C[340],N],[C[341],C[341],N],[C[342],C[342],N],[C[343],C[343],N],[C[344],C[344],N],["1211-mir","1211-mir",N],[C[345],C[345],N],[C[346],C[346],N],[C[347],C[347],N],[C[348],C[348],N],[C[349],C[349],N],[C[350],C[350],N],[C[351],C[351],N],[C[352],C[352],N],[C[353],C[353],N],[C[354],C[354],N],[C[355],C[355],N],[C[356],C[356],N],[C[357],C[357],N],[C[358],C[358],N],[C[359],C[359],N],[C[360],C[360],N],[C[361],C[361],N],[C[362],C[362],N],[C[363],C[363],N],[C[364],C[364],N],[C[365],C[365],N],["1317-ide","1317-ide",N],[C[366],C[366],N],[C[367],C[367],N],[C[368],C[368],N],[C[369],C[369],N],[C[370],C[370],N],[C[371],C[371],N],[C[372],C[372],N],[C[373],C[373],N],[C[374],C[374],N],[C[375],C[375],N],[C[376],C[376],N],[C[377],C[377],N],[C[378],C[378],N],[C[379],C[379],N],[C[380],C[380],N],[C[381],C[381],N],[C[382],C[382],N],[C[383],C[383],N],[C[384],C[384],N],[C[385],C[385],N],[C[386],C[386],N],[C[387],C[387],N],[C[388],C[388],N],[C[389],C[389],N],[C[390],C[390],N],[C[391],C[391],N],[C[392],C[392],N],[C[393],C[393],N],[C[394],C[394],N],[C[395],C[395],N],[C[396],C[396],N],[C[397],C[397],N],[C[398],C[398],N],[C[399],C[399],N],[C[400],C[400],N],[C[401],C[401],N],[C[402],C[402],N],[C[403],C[403],N],[C[404],C[404],N],[C[405],C[405],N],[C[406],C[406],N],[C[407],C[407],N],[C[408],C[408],N],[C[409],C[409],N],[C[410],C[410],N],[C[411],C[411],N],[C[412],C[412],N],[C[413],C[413],N],[C[414],C[414],N],[C[415],C[415],N],[C[416],C[416],N],[C[417],C[417],N],[C[418],C[418],N],[C[419],C[419],N],[C[420],C[420],N],[C[421],C[421],N],[C[422],C[422],N],[C[423],C[423],N],[C[424],C[424],N],[C[425],C[425],N],[C[426],C[426],N],[C[427],C[427],N],[C[428],C[428],N],[C[429],C[429],N],[C[430],C[430],N],[C[431],C[431],N],[C[432],C[432],N],[C[433],C[433],N],[C[434],C[434],N],[C[435],C[435],N],[C[436],C[436],N],[C[437],C[437],N],[C[438],C[438],N],[C[439],C[439],N],[C[440],C[440],N],[C[441],C[441],N],[C[442],C[442],N],[C[443],C[443],N],[C[444],C[444],N],[C[445],C[445],N],[C[446],C[446],N],[C[447],C[447],N],[C[448],C[448],N],[C[449],C[449],N],[C[450],C[450],N],[C[451],C[451],N],[C[452],C[452],N],[C[453],C[453],N],[C[454],C[454],N],[C[455],C[455],N],[C[456],C[456],N],[C[457],C[457],N],[C[458],C[458],N],[C[459],C[459],N],[C[460],C[460],N],[C[461],C[461],N],[C[462],C[462],N],[C[463],C[463],N],[C[464],C[464],N],[C[465],C[465],N],[C[466],C[466],N],[C[467],C[467],N],[C[468],C[468],N],[C[469],C[469],N],[C[470],C[470],N],[C[471],C[471],N],[C[472],C[472],N],[C[473],C[473],N],[C[474],C[474],N],[C[475],C[475],N],[C[476],C[476],N],[C[477],C[477],N],[C[478],C[478],N],[C[479],C[479],N],[C[480],C[480],N],[C[481],C[481],N],[C[482],C[482],N],[C[483],C[483],N],[C[484],C[484],N],[C[485],C[485],N],[C[486],C[486],N],[C[487],C[487],N],[C[488],C[488],N],[C[489],C[489],N],[C[490],C[490],N],[C[491],C[491],N],[C[492],C[492],N],["2094-nll","2094-nll",N],[C[493],C[493],N],[C[494],C[494],N],[C[495],C[495],N],[C[496],C[496],N],[C[497],C[497],N],[C[498],C[498],N],[C[499],C[499],N],[C[500],C[500],N],[C[501],C[501],N],[C[502],C[502],N],[C[503],C[503],N],[C[504],C[504],N],[C[505],C[505],N],[C[506],C[506],N],[C[507],C[507],N],[C[508],C[508],N],[C[509],C[509],N],[C[510],C[510],N],[C[511],C[511],N],[C[512],C[512],N],[C[513],C[513],N],[C[514],C[514],N],[C[515],C[515],N],[C[516],C[516],N],[C[517],C[517],N],[C[518],C[518],N],[C[519],C[519],N],[C[520],C[520],N],[C[521],C[521],N],[C[522],C[522],N],[C[523],C[523],N],[C[524],C[524],N],[C[525],C[525],N],[C[526],C[526],N],[C[527],C[527],N],[C[528],C[528],N],[C[529],C[529],N],[C[530],C[530],N],[C[531],C[531],N],[C[532],C[532],N],[C[533],C[533],N],[C[534],C[534],N],[C[535],C[535],N],[C[536],C[536],N],[C[537],C[537],N],[C[538],C[538],N],["2349-pin","2349-pin",N],[C[539],C[539],N],[C[540],C[540],N],[C[541],C[541],N],[C[542],C[542],N],[C[543],C[543],N],[C[544],C[544],N],[C[545],C[545],N],[C[546],C[546],N],[C[547],C[547],N],[C[548],C[548],N],[C[549],C[549],N],[C[550],C[550],N],[C[551],C[551],N],[C[552],C[552],N],[C[553],C[553],N],[C[554],C[554],N],[C[555],C[555],N],[C[556],C[556],N],[C[557],C[557],N],[C[558],C[558],N],[C[559],C[559],N],[C[560],C[560],N],[C[561],C[561],N],[C[562],C[562],N],[C[563],C[563],N],[C[564],C[564],N],[C[565],C[565],N],[C[566],C[566],N],[C[567],C[567],N],[C[568],C[568],N],[C[569],C[569],N],[C[570],C[570],N],[C[571],C[571],N],[C[572],C[572],N],[C[573],C[573],N],[C[574],C[574],N],[C[575],C[575],N],[C[576],C[576],N],[C[577],C[577],N],[C[578],C[578],N],[C[579],C[579],N],[C[580],C[580],N],[C[581],C[581],N],[C[582],C[582],N],[C[583],C[583],N],[C[584],C[584],N],[C[585],C[585],N],[C[586],C[586],N],[C[587],C[587],N],[C[588],C[588],N],[C[589],C[589],N],[C[590],C[590],N],[C[591],C[591],N],[C[592],C[592],N],[C[593],C[593],N],[C[594],C[594],N],[C[595],C[595],N],[C[596],C[596],N],[C[597],C[597],N],[C[598],C[598],N],[C[599],C[599],N],[C[600],C[600],N],[C[601],C[601],N],[C[602],C[602],N],[C[603],C[603],N],[C[604],C[604],N],[C[605],C[605],N],[C[606],C[606],N],[C[607],C[607],N],[C[608],C[608],N],[C[609],C[609],N],[C[610],C[610],N],[C[611],C[611],N],[C[612],C[612],N],[C[613],C[613],N],[C[614],C[614],N],[C[615],C[615],N],[C[616],C[616],N],[C[617],C[617],N],[C[618],C[618],N],[C[619],C[619],N],[C[620],C[620],N],[C[621],C[621],N],[C[622],C[622],N],[C[623],C[623],N],[C[624],C[624],N],[C[625],C[625],N],[C[626],C[626],N],[C[627],C[627],N],[C[628],C[628],N],[C[629],C[629],N],[C[630],C[630],N],[C[631],C[631],N],[C[632],C[632],N],[C[633],C[633],N],[C[634],C[634],N],[C[635],C[635],N],[C[636],C[636],N],[C[637],C[637],N],[C[638],C[638],N],[C[639],C[639],N],[C[640],C[640],N],[C[641],C[641],N],[C[642],C[642],N],[C[643],C[643],N],[C[644],C[644],N],[C[645],C[645],N],[C[646],C[646],N],[C[647],C[647],N],[C[648],C[648],N],[C[649],C[649],N],[C[650],C[650],N],[C[651],C[651],N],[C[652],C[652],N],[C[653],C[653],N],[C[654],C[654],N],[C[655],C[655],N],[C[656],C[656],N],[C[657],C[657],N],[C[658],C[658],N],[C[659],C[659],N],[C[660],C[660],N],[C[661],C[661],N],[C[662],C[662],N],[C[663],C[663],N],[C[664],C[664],N],[C[665],C[665],N],[C[666],C[666],N],[C[667],C[667],N],[C[668],C[668],N],[C[669],C[669],N],[C[670],C[670],N],[C[671],C[671],N],[C[672],C[672],N],[C[673],C[673],N],[C[674],C[674],N],[C[675],C[675],N],[C[676],C[676],N],[C[677],C[677],N],[C[678],C[678],N],[C[679],C[679],N],[C[680],C[680],N],[C[681],C[681],N],[C[682],C[682],N],[C[683],C[683],N],[C[684],C[684],N],["Leadership-Council-RFCja","3392-leadership-council/Leadership-Council-RFCja",[C[684]]],["Leadership-Council-RFCko","3392-leadership-council/Leadership-Council-RFCko",[C[684]]],["Leadership-Council-RFCru-RU","3392-leadership-council/Leadership-Council-RFCru-RU",[C[684]]],["Leadership-Council-RFCzh-Hans","3392-leadership-council/Leadership-Council-RFCzh-Hans",[C[684]]],["Leadership-Council-RFCzh-Hant","3392-leadership-council/Leadership-Council-RFCzh-Hant",[C[684]]],["alternatives","3392-leadership-council/alternatives",[C[684]]],["initial-work-of-the-council","3392-leadership-council/initial-work-of-the-council",[C[684]]],["motivation","3392-leadership-council/motivation",[C[684]]],["non-goals","3392-leadership-council/non-goals",[C[684]]],[C[685],C[685],N],[C[686],C[686],N],[C[687],C[687],N],[C[688],C[688],N],[C[689],C[689],N],[C[690],C[690],N],[C[691],C[691],N],[C[692],C[692],N],[C[693],C[693],N],[C[694],C[694],N],[C[695],C[695],N],[C[696],C[696],N],[C[697],C[697],N],[C[698],C[698],N],[C[699],C[699],N],[C[700],C[700],N],[C[701],C[701],N],[C[702],C[702],N],[C[703],C[703],N],[C[704],C[704],N],[C[705],C[705],N],[C[706],C[706],N],[C[707],C[707],N],[C[708],C[708],N],[C[709],C[709],N],[C[710],C[710],N],[C[711],C[711],N],[C[712],C[712],N],[C[713],C[713],N],[C[714],C[714],N],[C[715],C[715],N],[C[716],C[716],N],[C[717],C[717],N],[C[718],C[718],N],[C[719],C[719],N],[C[720],C[720],N],[C[721],C[721],N],[C[722],C[722],N],[C[723],C[723],N],[C[724],C[724],N],[C[725],C[725],N],[C[726],C[726],N],[C[727],C[727],N],[C[728],C[728],N],[C[729],C[729],N],[C[730],C[730],N],[C[731],C[731],N],[C[732],C[732],N]]},{"name":"The Rust Doc Book","url":"https://doc.rust-lang.org/rustdoc/","pages":[["1. What is rustdoc?","what-is-rustdoc",N],["2. Command-line arguments",C[735],N],[C[733],"how-to-read-rustdoc",N],["3.1. In-doc settings","read-documentation/in-doc-settings",[C[733]]],["3.2. Search","read-documentation/search",[C[733]]],[C[734],"how-to-write-documentation",N],["4.1. What to include (and exclude)","write-documentation/what-to-include",[C[734]]],["4.2. The #[doc] attribute","write-documentation/the-doc-attribute",[C[734]]],["4.3. Re-exports","write-documentation/re-exports",[C[734]]],["4.4. Linking to items by name","write-documentation/linking-to-items-by-name",[C[734]]],["4.5. Documentation tests","write-documentation/documentation-tests",[C[734]]],["5. Rustdoc-specific lints","lints",N],["6. Scraped examples","scraped-examples",N],["7. Advanced features","advanced-features",N],["8. Unstable features","unstable-features",N],["9. Deprecated features","deprecated-features",N],["10. References",C[795],N]]},{"name":"The rustc Book","url":"https://doc.rust-lang.org/rustc/","pages":[["1. What is rustc?","what-is-rustc",N],[C[736],C[735],N],["2.1. Codegen Options","codegen-options/index",[C[736]]],["3. Jobserver","jobserver",N],[C[737],"lints/index",N],["4.1. Lint Levels","lints/levels",[C[737]]],["4.2. Lint Groups","lints/groups",[C[737]]],[C[738],"lints/listing/index",[C[737]]],["4.3.1. Allowed-by-default Lints","lints/listing/allowed-by-default",[C[737],C[738]]],["4.3.2. Warn-by-default Lints","lints/listing/warn-by-default",[C[737],C[738]]],["4.3.3. Deny-by-default Lints","lints/listing/deny-by-default",[C[737],C[738]]],["5. JSON Output","json",N],["6. Tests","tests/index",N],[C[739],"platform-support",N],["7.1. Target Tier Policy","target-tier-policy",[C[739]]],["7.2. Template for Target-specific Documentation","platform-support/TEMPLATE",[C[739]]],["7.3. arm64ec-pc-windows-msvc","platform-support/arm64ec-pc-windows-msvc",[C[739]]],[C[740],"platform-support/apple-darwin",[C[739]]],["7.4.1. i686-apple-darwin","platform-support/i686-apple-darwin",[C[739],C[740]]],["7.4.2. x86_64h-apple-darwin","platform-support/x86_64h-apple-darwin",[C[739],C[740]]],["7.4.3. arm64e-apple-darwin","platform-support/arm64e-apple-darwin",[C[739],C[740]]],[C[741],"platform-support/apple-ios",[C[739]]],["7.5.1. *-apple-ios-macabi","platform-support/apple-ios-macabi",[C[739],C[741]]],["7.5.2. arm64e-apple-ios","platform-support/arm64e-apple-ios",[C[739],C[741]]],["7.6. *-apple-tvos","platform-support/apple-tvos",[C[739]]],["7.7. *-apple-watchos","platform-support/apple-watchos",[C[739]]],["7.8. *-apple-visionos","platform-support/apple-visionos",[C[739]]],["7.9. aarch64-nintendo-switch-freestanding","platform-support/aarch64-nintendo-switch-freestanding",[C[739]]],["7.10. armeb-unknown-linux-gnueabi","platform-support/armeb-unknown-linux-gnueabi",[C[739]]],[C[742],"platform-support/arm-none-eabi",[C[739]]],["7.11.1. armv4t-none-eabi","platform-support/armv4t-none-eabi",[C[739],C[742]]],["7.11.2. armv5te-none-eabi","platform-support/armv5te-none-eabi",[C[739],C[742]]],["7.11.3. armv7r-none-eabi","platform-support/armv7r-none-eabi",[C[739],C[742]]],["7.11.4. armv8r-none-eabihf","platform-support/armv8r-none-eabihf",[C[739],C[742]]],["7.11.5. thumbv6m-none-eabi","platform-support/thumbv6m-none-eabi",[C[739],C[742]]],["7.11.6. thumbv7em-none-eabi*","platform-support/thumbv7em-none-eabi",[C[739],C[742]]],["7.11.7. thumbv7m-none-eabi","platform-support/thumbv7m-none-eabi",[C[739],C[742]]],["7.11.8. thumbv8m.base-none-eabi","platform-support/thumbv8m.base-none-eabi",[C[739],C[742]]],["7.11.9. thumbv8m.main-none-eabi*","platform-support/thumbv8m.main-none-eabi",[C[739],C[742]]],["7.12. armv6k-nintendo-3ds","platform-support/armv6k-nintendo-3ds",[C[739]]],["7.13. armv7-sony-vita-newlibeabihf","platform-support/armv7-sony-vita-newlibeabihf",[C[739]]],["7.14. armv7-unknown-linux-uclibceabi","platform-support/armv7-unknown-linux-uclibceabi",[C[739]]],["7.15. armv7-unknown-linux-uclibceabihf","platform-support/armv7-unknown-linux-uclibceabihf",[C[739]]],["7.16. *-android and *-androideabi","platform-support/android",[C[739]]],["7.17. *-linux-ohos","platform-support/openharmony",[C[739]]],["7.18. *-hurd-gnu","platform-support/hurd",[C[739]]],["7.19. aarch64-unknown-teeos","platform-support/aarch64-unknown-teeos",[C[739]]],["7.20. *-espidf","platform-support/esp-idf",[C[739]]],["7.21. *-unknown-fuchsia","platform-support/fuchsia",[C[739]]],["7.22. *-kmc-solid_*","platform-support/kmc-solid",[C[739]]],["7.23. csky-unknown-linux-gnuabiv2*","platform-support/csky-unknown-linux-gnuabiv2",[C[739]]],["7.24. hexagon-unknown-linux-musl","platform-support/hexagon-unknown-linux-musl",[C[739]]],["7.25. hexagon-unknown-none-elf","platform-support/hexagon-unknown-none-elf",[C[739]]],["7.26. loongarch*-unknown-linux-*","platform-support/loongarch-linux",[C[739]]],["7.27. loongarch*-unknown-none*","platform-support/loongarch-none",[C[739]]],["7.28. m68k-unknown-linux-gnu","platform-support/m68k-unknown-linux-gnu",[C[739]]],["7.29. mips64-openwrt-linux-musl","platform-support/mips64-openwrt-linux-musl",[C[739]]],["7.30. mipsel-sony-psx","platform-support/mipsel-sony-psx",[C[739]]],["7.31. mipsisa*r6*-unknown-linux-gnu*","platform-support/mips-release-6",[C[739]]],["7.32. nvptx64-nvidia-cuda","platform-support/nvptx64-nvidia-cuda",[C[739]]],["7.33. powerpc-unknown-openbsd","platform-support/powerpc-unknown-openbsd",[C[739]]],["7.34. powerpc64-ibm-aix","platform-support/aix",[C[739]]],["7.35. riscv32im-risc0-zkvm-elf","platform-support/riscv32im-risc0-zkvm-elf",[C[739]]],["7.36. riscv32imac-unknown-xous-elf","platform-support/riscv32imac-unknown-xous-elf",[C[739]]],["7.37. riscv32*-unknown-none-elf","platform-support/riscv32-unknown-none-elf",[C[739]]],["7.38. sparc-unknown-none-elf","platform-support/sparc-unknown-none-elf",[C[739]]],["7.39. *-pc-windows-gnullvm","platform-support/pc-windows-gnullvm",[C[739]]],["7.40. *-nto-qnx-*","platform-support/nto-qnx",[C[739]]],["7.41. *-unikraft-linux-musl","platform-support/unikraft-linux-musl",[C[739]]],["7.42. *-unknown-hermit","platform-support/hermit",[C[739]]],["7.43. *-unknown-netbsd*","platform-support/netbsd",[C[739]]],["7.44. *-unknown-openbsd","platform-support/openbsd",[C[739]]],["7.45. *-unknown-redox","platform-support/redox",[C[739]]],["7.46. *-unknown-uefi","platform-support/unknown-uefi",[C[739]]],["7.47. wasm32-wasip1","platform-support/wasm32-wasip1",[C[739]]],["7.48. wasm32-wasip1-threads","platform-support/wasm32-wasip1-threads",[C[739]]],["7.49. wasm32-wasip2","platform-support/wasm32-wasip2",[C[739]]],["7.50. wasm64-unknown-unknown","platform-support/wasm64-unknown-unknown",[C[739]]],["7.51. *-win7-windows-msvc","platform-support/win7-windows-msvc",[C[739]]],["7.52. x86_64-fortanix-unknown-sgx","platform-support/x86_64-fortanix-unknown-sgx",[C[739]]],["7.53. x86_64-unknown-linux-none.md","platform-support/x86_64-unknown-linux-none",[C[739]]],["7.54. x86_64-unknown-none","platform-support/x86_64-unknown-none",[C[739]]],["7.55. xtensa-*-none-elf","platform-support/xtensa",[C[739]]],[C[743],"targets/index",N],["8.1. Built-in Targets","targets/built-in",[C[743]]],["8.2. Custom Targets","targets/custom",[C[743]]],["8.3. Known Issues","targets/known-issues",[C[743]]],["9. Profile-guided Optimization",C[778],N],["10. Instrumentation-based Code Coverage","instrument-coverage",N],["11. Linker-plugin-based LTO","linker-plugin-lto",N],[C[744],"check-cfg",N],["12.1. Cargo Specifics","check-cfg/cargo-specifics",[C[744]]],["13. Exploit Mitigations","exploit-mitigations",N],[C[745],"symbol-mangling/index",N],["14.1. v0 Symbol Format","symbol-mangling/v0",[C[745]]],["15. Contributing to rustc",C[746],N]]},{"name":"Standard library developers Guide","url":"https://std-dev-guide.rust-lang.org/","pages":[["1. About this Guide","about",N],[C[747],"breaking-changes/summary",N],["3.1. New trait implementations","breaking-changes/new-trait-impls",[C[747]]],["3.2. Prelude","breaking-changes/prelude",[C[747]]],["3.3. Doc changes","breaking-changes/doc-changes",[C[747]]],[C[748],"team/summary",N],["6.1. Meetings","team/meetings",[C[748]]],["6.2. Membership","team/membership",[C[748]]],["6.3. Reviewing","team/reviewing",[C[748]]]]},{"name":"Guide to Rustc Development","url":"https://rustc-dev-guide.rust-lang.org/","pages":[["Getting Started","getting-started",N],["About this guide","about-this-guide",N],[C[749],"building/how-to-build-and-run",N],["1.1. Quickstart","building/quickstart",[C[749]]],["1.2. Prerequisites","building/prerequisites",[C[749]]],["1.3. Suggested Workflows","building/suggested",[C[749]]],["1.4. Distribution artifacts","building/build-install-distribution-artifacts",[C[749]]],["1.5. Building Documentation","building/compiler-documenting",[C[749]]],["1.6. Rustdoc overview","rustdoc",[C[749]]],["1.7. Adding a new target","building/new-target",[C[749]]],["1.8. Optimized build","building/optimized-build",[C[749]]],[C[750],"tests/intro",N],[C[751],"tests/running",[C[750]]],["2.1.1. Testing with Docker","tests/docker",[C[750],C[751]]],["2.1.2. Testing with CI","tests/ci",[C[750],C[751]]],["2.2. Adding new tests","tests/adding",[C[750]]],["2.3. Best practices","tests/best-practices",[C[750]]],[C[752],"tests/compiletest",[C[750]]],["2.4.1. UI tests","tests/ui",[C[750],C[752]]],["2.4.2. Test headers","tests/directives",[C[750],C[752]]],[C[753],"tests/ecosystem",[C[750]]],["2.5.1. Crater","tests/crater",[C[750],C[753]]],["2.5.2. Fuchsia","tests/fuchsia",[C[750],C[753]]],["2.5.3. Rust for Linux","tests/rust-for-linux",[C[750],C[753]]],["2.6. Performance testing","tests/perf",[C[750]]],["2.7. Suggest tests tool","tests/suggest-tests",[C[750]]],[C[754],"compiler-debugging",N],["3.1. Using the tracing/logging instrumentation","tracing",[C[754]]],[C[755],C[857],N],["4.1. with the linux perf tool","profiling/with_perf",[C[755]]],["4.2. with Windows Performance Analyzer","profiling/wpa_profiling",[C[755]]],["4.3. with the Rust benchmark suite","profiling/with_rustc_perf",[C[755]]],["5. crates.io Dependencies","crates-io",N],["6. Contribution Procedures",C[746],N],["7. About the compiler team","compiler-team",N],["8. Using Git","git",N],["9. Mastering @rustbot","rustbot",N],["10. Walkthrough: a typical contribution","walkthrough",N],["11. Implementing new language features","implementing_new_features",N],["12. Stability attributes",C[908],N],["13. Stabilizing Features","stabilization_guide",N],["14. Feature Gates","feature-gates",N],["15. Coding conventions","conventions",N],["16. Procedures for Breaking Changes","bug-fix-procedure",N],["17. Using external repositories","external-repos",N],["18. Fuzzing","fuzzing",N],[C[756],"notification-groups/about",N],["19.1. Apple","notification-groups/apple",[C[756]]],["19.2. ARM","notification-groups/arm",[C[756]]],["19.3. Cleanup Crew","notification-groups/cleanup-crew",[C[756]]],["19.4. LLVM","notification-groups/llvm",[C[756]]],["19.5. RISC-V","notification-groups/risc-v",[C[756]]],["19.6. Windows","notification-groups/windows",[C[756]]],["19.7. Rust for Linux","notification-groups/rust-for-linux",[C[756]]],["20. Licenses","licenses",N],["21. Editions","guides/editions",N],["22. Prologue","building/bootstrapping/intro",N],["23. What Bootstrapping does","building/bootstrapping/what-bootstrapping-does",N],["24. How Bootstrap does it","building/bootstrapping/how-bootstrap-does-it",N],["25. Prologue","part-2-intro",N],["26. Overview of the compiler","overview",N],["27. The compiler source code","compiler-src",N],[C[757],"query",N],["28.1. The Query Evaluation Model in Detail","queries/query-evaluation-model-in-detail",[C[757]]],["28.2. Incremental compilation","queries/incremental-compilation",[C[757]]],["28.3. Incremental compilation In Detail","queries/incremental-compilation-in-detail",[C[757]]],["28.4. Debugging and Testing","incrcomp-debugging",[C[757]]],["28.5. Salsa","queries/salsa",[C[757]]],["29. Memory Management in Rustc","memory",N],["30. Serialization in Rustc","serialization",N],["31. Parallel Compilation","parallel-rustc",N],[C[758],"rustdoc-internals",N],["32.1. Search","rustdoc-internals/search",[C[758]]],["33. Prologue","part-3-intro",N],["34. Command-line arguments","cli",N],[C[759],"rustc-driver/intro",N],["35.1. Example: Type checking","rustc-driver/interacting-with-the-ast",[C[759]]],["35.2. Example: Getting diagnostics","rustc-driver/getting-diagnostics",[C[759]]],[C[760],"syntax-intro",N],["36.1. Lexing and Parsing","the-parser",[C[760]]],["36.2. Macro expansion","macro-expansion",[C[760]]],["36.3. Name resolution","name-resolution",[C[760]]],["36.4. Attributes",C[783],[C[760]]],["36.5. #[test] Implementation","test-implementation",[C[760]]],["36.6. Panic Implementation","panic-implementation",[C[760]]],["36.7. AST Validation","ast-validation",[C[760]]],["36.8. Feature Gate Checking","feature-gate-ck",[C[760]]],["36.9. Lang Items","lang-items",[C[760]]],[C[761],"hir",N],["37.1. Lowering AST to HIR","ast-lowering",[C[761]]],["37.2. Debugging","hir-debugging",[C[761]]],["38. The THIR (Typed High-level IR)","thir",N],[C[762],"mir/index",N],["39.1. MIR construction","mir/construction",[C[762]]],["39.2. MIR visitor and traversal","mir/visitor",[C[762]]],["39.3. MIR queries and passes: getting the MIR","mir/passes",[C[762]]],["40. Identifiers in the Compiler",C[780],N],["41. Closure expansion","closure",N],["42. Inline assembly","asm",N],["43. Prologue","part-4-intro",N],[C[763],"generic_parameters_summary",N],["44.1. What is ty::Generics","what_is_ty_generics",[C[763]]],[C[764],"early-late-bound-params/early-late-bound-summary",[C[763]]],["44.2.1. Implementation nuances of early/late bound parameters","early-late-bound-params/early-late-bound-implementation-nuances",[C[763],C[764]]],["44.2.2. Interactions with turbofishing","early-late-bound-params/turbofishing-and-early-late-bound",[C[763],C[764]]],[C[765],"ty",N],["45.1. ADTs and Generic Arguments","ty_module/generic_arguments",[C[765]]],["45.2. Parameter types/consts/regions","ty_module/param_ty_const_regions",[C[765]]],["45.3. EarlyBinder and instantiating parameters","ty_module/early_binder",[C[765]]],["45.4. Binder and Higher ranked regions","ty_module/binders",[C[765]]],["45.5. Instantiating binders","ty_module/instantiating_binders",[C[765]]],["45.6. Constants in the type system","constants",[C[765]]],["46. TypeFolder and TypeFoldable","ty-fold",N],[C[766],"param_env/param_env_summary",N],["47.1. What is it?","param_env/param_env_what_is_it",[C[766]]],["47.2. How are ParamEnv's constructed internally","param_env/param_env_construction_internals",[C[766]]],["47.3. Which ParamEnv do I use?","param_env/param_env_acquisition",[C[766]]],["48. Type inference","type-inference",N],[C[767],"traits/resolution",N],["49.1. Higher-ranked trait bounds","traits/hrtb",[C[767]]],["49.2. Caching subtleties","traits/caching",[C[767]]],["49.3. Implied bounds","traits/implied-bounds",[C[767]]],["49.4. Specialization","traits/specialization",[C[767]]],[C[768],"traits/chalk",[C[767]]],["49.5.1. Lowering to logic","traits/lowering-to-logic",[C[767],C[768]]],["49.5.2. Goals and clauses","traits/goals-and-clauses",[C[767],C[768]]],["49.5.3. Canonical queries","traits/canonical-queries",[C[767],C[768]]],["49.5.4. Canonicalization","traits/canonicalization",[C[767],C[768]]],[C[769],"solve/trait-solving",[C[767]]],["49.6.1. Invariants of the type system","solve/invariants",[C[767],C[769]]],["49.6.2. The solver","solve/the-solver",[C[767],C[769]]],["49.6.3. Canonicalization","solve/canonicalization",[C[767],C[769]]],["49.6.4. Coinduction","solve/coinduction",[C[767],C[769]]],["49.6.5. Caching","solve/caching",[C[767],C[769]]],["49.6.6. Proof trees","solve/proof-trees",[C[767],C[769]]],["49.6.7. Normalization","solve/normalization",[C[767],C[769]]],["49.6.8. Opaque types","solve/opaque-types",[C[767],C[769]]],["49.6.9. Significant changes and quirks","solve/significant-changes",[C[767],C[769]]],["49.7. Unsize and CoerceUnsized traits","traits/unsize",[C[767]]],[C[770],"type-checking",N],["50.1. Method Lookup","method-lookup",[C[770]]],["50.2. Variance","variance",[C[770]]],["50.3. Coherence Checking","coherence",[C[770]]],[C[771],"opaque-types-type-alias-impl-trait",[C[770]]],["50.4.1. Inference details","opaque-types-impl-trait-inference",[C[770],C[771]]],["50.4.2. Return Position Impl Trait In Trait","return-position-impl-trait-in-trait",[C[770],C[771]]],["50.4.3. Region inference restrictions","borrow_check/opaque-types-region-inference-restrictions",[C[770],C[771]]],["51. Effect checking","effects",N],["52. Pattern and Exhaustiveness Checking","pat-exhaustive-checking",N],["53. Unsafety Checking","unsafety-checking",N],["54. MIR dataflow","mir/dataflow",N],["55. Drop elaboration","mir/drop-elaboration",N],[C[772],"borrow_check",N],[C[773],"borrow_check/moves_and_initialization",[C[772]]],["56.1.1. Move paths","borrow_check/moves_and_initialization/move_paths",[C[772],C[773]]],["56.2. MIR type checker","borrow_check/type_check",[C[772]]],["56.3. Drop check","borrow_check/drop_check",[C[772]]],[C[774],"borrow_check/region_inference",[C[772]]],["56.4.1. Constraint propagation","borrow_check/region_inference/constraint_propagation",[C[772],C[774]]],["56.4.2. Lifetime parameters","borrow_check/region_inference/lifetime_parameters",[C[772],C[774]]],["56.4.3. Member constraints","borrow_check/region_inference/member_constraints",[C[772],C[774]]],["56.4.4. Placeholders and universes","borrow_check/region_inference/placeholders_and_universes",[C[772],C[774]]],["56.4.5. Closure constraints","borrow_check/region_inference/closure_constraints",[C[772],C[774]]],["56.4.6. Error reporting","borrow_check/region_inference/error_reporting",[C[772],C[774]]],["56.5. Two-phase-borrows","borrow_check/two_phase_borrows",[C[772]]],[C[775],"diagnostics",N],["57.1. Diagnostic and subdiagnostic structs","diagnostics/diagnostic-structs",[C[775]]],["57.2. Translation","diagnostics/translation",[C[775]]],["57.3. LintStore","diagnostics/lintstore",[C[775]]],["57.4. Error codes","diagnostics/error-codes",[C[775]]],["57.5. Diagnostic items","diagnostics/diagnostic-items",[C[775]]],["57.6. ErrorGuaranteed","diagnostics/error-guaranteed",[C[775]]],["58. Prologue","part-5-intro",N],["59. MIR optimizations","mir/optimizations",N],["60. Debugging MIR","mir/debugging",N],[C[776],"const-eval",N],["61.1. Interpreter","const-eval/interpret",[C[776]]],["62. Monomorphization","backend/monomorph",N],["63. Lowering MIR","backend/lowering-mir",N],[C[777],"backend/codegen",N],["64.1. Updating LLVM","backend/updating-llvm",[C[777]]],["64.2. Debugging LLVM","backend/debugging",[C[777]]],["64.3. Backend Agnostic Codegen","backend/backend-agnostic",[C[777]]],["64.4. Implicit Caller Location","backend/implicit-caller-location",[C[777]]],["65. Libraries and Metadata","backend/libs-and-metadata",N],["66. Profile-guided Optimization",C[778],N],["67. LLVM Source-Based Code Coverage","llvm-coverage-instrumentation",N],["68. Sanitizers Support","sanitizers",N],["69. Debugging support in the Rust compiler","debugging-support-in-rustc",N],["Appendix A: Background topics","appendix/background",N],["Appendix B: Glossary",C[70],N],["Appendix C: Code Index","appendix/code-index",N],["Appendix D: Compiler Lecture Series","appendix/compiler-lecture",N],["Appendix E: Bibliography","appendix/bibliography",N],["Appendix Z: HumorRust","appendix/humorust",N]]},{"name":"The Rust Reference","url":"https://doc.rust-lang.org/reference/","pages":[[C[21],C[48],N],["1. Notation","notation",N],[C[779],"lexical-structure",N],["2.1. Input format","input-format",[C[779]]],["2.2. Keywords","keywords",[C[779]]],["2.3. Identifiers",C[780],[C[779]]],["2.4. Comments","comments",[C[779]]],["2.5. Whitespace","whitespace",[C[779]]],["2.6. Tokens","tokens",[C[779]]],[C[781],"macros",N],["3.1. Macros By Example","macros-by-example",[C[781]]],["3.2. Procedural Macros","procedural-macros",[C[781]]],["4. Crates and source files","crates-and-source-files",N],["5. Conditional compilation","conditional-compilation",N],[C[782],"items",N],["6.1. Modules","items/modules",[C[782]]],["6.2. Extern crates","items/extern-crates",[C[782]]],["6.3. Use declarations","items/use-declarations",[C[782]]],["6.4. Functions","items/functions",[C[782]]],["6.5. Type aliases","items/type-aliases",[C[782]]],["6.6. Structs","items/structs",[C[782]]],["6.7. Enumerations","items/enumerations",[C[782]]],["6.8. Unions","items/unions",[C[782]]],["6.9. Constant items","items/constant-items",[C[782]]],["6.10. Static items","items/static-items",[C[782]]],["6.11. Traits","items/traits",[C[782]]],["6.12. Implementations","items/implementations",[C[782]]],["6.13. External blocks","items/external-blocks",[C[782]]],["6.14. Generic parameters","items/generics",[C[782]]],["6.15. Associated Items","items/associated-items",[C[782]]],[C[784],C[783],N],["7.1. Testing","attributes/testing",[C[784]]],["7.2. Derive","attributes/derive",[C[784]]],["7.3. Diagnostics","attributes/diagnostics",[C[784]]],["7.4. Code generation","attributes/codegen",[C[784]]],["7.5. Limits","attributes/limits",[C[784]]],["7.6. Type System","attributes/type_system",[C[784]]],["7.7. Debugger","attributes/debugger",[C[784]]],[C[785],"statements-and-expressions",N],["8.1. Statements","statements",[C[785]]],[C[786],"expressions",[C[785]]],["8.2.1. Literal expressions","expressions/literal-expr",[C[785],C[786]]],["8.2.2. Path expressions","expressions/path-expr",[C[785],C[786]]],["8.2.3. Block expressions","expressions/block-expr",[C[785],C[786]]],["8.2.4. Operator expressions","expressions/operator-expr",[C[785],C[786]]],["8.2.5. Grouped expressions","expressions/grouped-expr",[C[785],C[786]]],["8.2.6. Array and index expressions","expressions/array-expr",[C[785],C[786]]],["8.2.7. Tuple and index expressions","expressions/tuple-expr",[C[785],C[786]]],["8.2.8. Struct expressions","expressions/struct-expr",[C[785],C[786]]],["8.2.9. Call expressions","expressions/call-expr",[C[785],C[786]]],["8.2.10. Method call expressions","expressions/method-call-expr",[C[785],C[786]]],["8.2.11. Field access expressions","expressions/field-expr",[C[785],C[786]]],["8.2.12. Closure expressions","expressions/closure-expr",[C[785],C[786]]],["8.2.13. Loop expressions","expressions/loop-expr",[C[785],C[786]]],["8.2.14. Range expressions","expressions/range-expr",[C[785],C[786]]],["8.2.15. If and if let expressions","expressions/if-expr",[C[785],C[786]]],["8.2.16. Match expressions","expressions/match-expr",[C[785],C[786]]],["8.2.17. Return expressions","expressions/return-expr",[C[785],C[786]]],["8.2.18. Await expressions","expressions/await-expr",[C[785],C[786]]],["8.2.19. Underscore expressions","expressions/underscore-expr",[C[785],C[786]]],["9. Patterns","patterns",N],[C[787],"type-system",N],[C[788],"types",[C[787]]],["10.1.1. Boolean type","types/boolean",[C[787],C[788]]],["10.1.2. Numeric types","types/numeric",[C[787],C[788]]],["10.1.3. Textual types","types/textual",[C[787],C[788]]],["10.1.4. Never type","types/never",[C[787],C[788]]],["10.1.5. Tuple types","types/tuple",[C[787],C[788]]],["10.1.6. Array types","types/array",[C[787],C[788]]],["10.1.7. Slice types","types/slice",[C[787],C[788]]],["10.1.8. Struct types","types/struct",[C[787],C[788]]],["10.1.9. Enumerated types","types/enum",[C[787],C[788]]],["10.1.10. Union types","types/union",[C[787],C[788]]],["10.1.11. Function item types","types/function-item",[C[787],C[788]]],["10.1.12. Closure types","types/closure",[C[787],C[788]]],["10.1.13. Pointer types","types/pointer",[C[787],C[788]]],["10.1.14. Function pointer types","types/function-pointer",[C[787],C[788]]],["10.1.15. Trait object types","types/trait-object",[C[787],C[788]]],["10.1.16. Impl trait type","types/impl-trait",[C[787],C[788]]],["10.1.17. Type parameters","types/parameters",[C[787],C[788]]],["10.1.18. Inferred type","types/inferred",[C[787],C[788]]],["10.2. Dynamically Sized Types","dynamically-sized-types",[C[787]]],["10.3. Type layout","type-layout",[C[787]]],["10.4. Interior mutability","interior-mutability",[C[787]]],["10.5. Subtyping and Variance",C[798],[C[787]]],["10.6. Trait and lifetime bounds","trait-bounds",[C[787]]],["10.7. Type coercions","type-coercions",[C[787]]],["10.8. Destructors",C[802],[C[787]]],["10.9. Lifetime elision",C[797],[C[787]]],["11. Special types and traits","special-types-and-traits",N],[C[789],"names",N],["12.1. Namespaces","names/namespaces",[C[789]]],["12.2. Scopes","names/scopes",[C[789]]],["12.3. Preludes","names/preludes",[C[789]]],["12.4. Paths","paths",[C[789]]],["12.5. Name resolution","names/name-resolution",[C[789]]],["12.6. Visibility and privacy","visibility-and-privacy",[C[789]]],[C[790],"memory-model",N],["13.1. Memory allocation and lifetime","memory-allocation-and-lifetime",[C[790]]],["13.2. Variables","variables",[C[790]]],["14. Linkage","linkage",N],["15. Inline assembly","inline-assembly",N],[C[791],"unsafety",N],["16.1. The unsafe keyword","unsafe-keyword",[C[791]]],["16.2. Behavior considered undefined","behavior-considered-undefined",[C[791]]],["16.3. Behavior not considered unsafe","behavior-not-considered-unsafe",[C[791]]],["17. Constant Evaluation","const_eval",N],["18. Application Binary Interface","abi",N],["19. The Rust runtime","runtime",N],[C[792],"appendices",N],["20.1. Macro Follow-Set Ambiguity Formal Specification","macro-ambiguity",[C[792]]],["20.2. Influences","influences",[C[792]]],["20.3. Glossary",C[864],[C[792]]]]},{"name":"The Rustonomicon","url":"https://doc.rust-lang.org/nomicon/","pages":[[C[21],"intro",N],[C[793],"meet-safe-and-unsafe",N],["1.1. How Safe and Unsafe Interact","safe-unsafe-meaning",[C[793]]],["1.2. What Unsafe Can Do","what-unsafe-does",[C[793]]],["1.3. Working with Unsafe","working-with-unsafe",[C[793]]],[C[794],"data",N],["2.1. repr(Rust)","repr-rust",[C[794]]],["2.2. Exotically Sized Types","exotic-sizes",[C[794]]],["2.3. Other reprs","other-reprs",[C[794]]],[C[796],C[907],N],["3.1. References",C[795],[C[796]]],["3.2. Aliasing","aliasing",[C[796]]],["3.3. Lifetimes",C[900],[C[796]]],["3.4. Limits of Lifetimes","lifetime-mismatch",[C[796]]],["3.5. Lifetime Elision",C[797],[C[796]]],["3.6. Unbounded Lifetimes","unbounded-lifetimes",[C[796]]],["3.7. Higher-Rank Trait Bounds","hrtb",[C[796]]],["3.8. Subtyping and Variance",C[798],[C[796]]],["3.9. Drop Check","dropck",[C[796]]],["3.10. PhantomData","phantom-data",[C[796]]],["3.11. Splitting Borrows","borrow-splitting",[C[796]]],[C[799],"conversions",N],["4.1. Coercions","coercions",[C[799]]],["4.2. The Dot Operator","dot-operator",[C[799]]],["4.3. Casts","casts",[C[799]]],["4.4. Transmutes","transmutes",[C[799]]],[C[800],"uninitialized",N],["5.1. Checked","checked-uninit",[C[800]]],["5.2. Drop Flags","drop-flags",[C[800]]],["5.3. Unchecked","unchecked-uninit",[C[800]]],[C[801],"obrm",N],["6.1. Constructors","constructors",[C[801]]],["6.2. Destructors",C[802],[C[801]]],["6.3. Leaking","leaking",[C[801]]],[C[803],"unwinding",N],["7.1. Exception Safety","exception-safety",[C[803]]],["7.2. Poisoning","poisoning",[C[803]]],[C[805],C[804],N],["8.1. Races","races",[C[805]]],["8.2. Send and Sync","send-and-sync",[C[805]]],["8.3. Atomics","atomics",[C[805]]],[C[806],"vec/vec",N],["9.1. Layout","vec/vec-layout",[C[806]]],["9.2. Allocating","vec/vec-alloc",[C[806]]],["9.3. Push and Pop","vec/vec-push-pop",[C[806]]],["9.4. Deallocating","vec/vec-dealloc",[C[806]]],["9.5. Deref","vec/vec-deref",[C[806]]],["9.6. Insert and Remove","vec/vec-insert-remove",[C[806]]],["9.7. IntoIter","vec/vec-into-iter",[C[806]]],["9.8. RawVec","vec/vec-raw",[C[806]]],["9.9. Drain","vec/vec-drain",[C[806]]],["9.10. Handling Zero-Sized Types","vec/vec-zsts",[C[806]]],["9.11. Final Code","vec/vec-final",[C[806]]],[C[807],"arc-mutex/arc-and-mutex",N],[C[808],"arc-mutex/arc",[C[807]]],["10.1.1. Layout","arc-mutex/arc-layout",[C[807],C[808]]],["10.1.2. Base Code","arc-mutex/arc-base",[C[807],C[808]]],["10.1.3. Cloning","arc-mutex/arc-clone",[C[807],C[808]]],["10.1.4. Dropping","arc-mutex/arc-drop",[C[807],C[808]]],["10.1.5. Final Code","arc-mutex/arc-final",[C[807],C[808]]],["11. FFI","ffi",N],[C[809],"beneath-std",N],["12.1. #[panic_handler]","panic-handler",[C[809]]]]},{"name":C[810],"url":"https://doc.rust-lang.org/unstable-book/","pages":[[C[810],"the-unstable-book",N],[C[811],"compiler-flags",N],["1.1. branch_protection","compiler-flags/branch-protection",[C[811]]],["1.2. cf_protection","compiler-flags/cf-protection",[C[811]]],["1.3. codegen_backend","compiler-flags/codegen-backend",[C[811]]],["1.4. codegen_options","compiler-flags/codegen-options",[C[811]]],["1.5. control_flow_guard","compiler-flags/control-flow-guard",[C[811]]],["1.6. coverage_options","compiler-flags/coverage-options",[C[811]]],["1.7. debug_info_for_profiling","compiler-flags/debug_info_for_profiling",[C[811]]],["1.8. default_hidden_visibility","compiler-flags/default-hidden-visibility",[C[811]]],["1.9. direct_access_external_data","compiler-flags/direct-access-external-data",[C[811]]],["1.10. dump_mono_stats","compiler-flags/dump-mono-stats",[C[811]]],["1.11. dump_mono_stats_format","compiler-flags/dump-mono-stats-format",[C[811]]],["1.12. dwarf_version","compiler-flags/dwarf-version",[C[811]]],["1.13. dylib_lto","compiler-flags/dylib-lto",[C[811]]],["1.14. emit_stack_sizes","compiler-flags/emit-stack-sizes",[C[811]]],["1.15. env_set","compiler-flags/env-set",[C[811]]],["1.16. export_executable_symbols","compiler-flags/export-executable-symbols",[C[811]]],["1.17. extern_options","compiler-flags/extern-options",[C[811]]],["1.18. external_clangrt","compiler-flags/external-clangrt",[C[811]]],["1.19. fixed_x18","compiler-flags/fixed-x18",[C[811]]],["1.20. function_return","compiler-flags/function-return",[C[811]]],["1.21. instrument_xray","compiler-flags/instrument-xray",[C[811]]],["1.22. link_native_libraries","compiler-flags/link-native-libraries",[C[811]]],["1.23. linker_features","compiler-flags/linker-features",[C[811]]],["1.24. llvm_module_flag","compiler-flags/llvm-module-flag",[C[811]]],["1.25. location_detail","compiler-flags/location-detail",[C[811]]],["1.26. move_size_limit","compiler-flags/move-size-limit",[C[811]]],["1.27. no_jump_tables","compiler-flags/no-jump-tables",[C[811]]],["1.28. no_parallel_llvm","compiler-flags/no-parallel-llvm",[C[811]]],["1.29. no_unique_section_names","compiler-flags/no-unique-section-names",[C[811]]],["1.30. on_broken_pipe","compiler-flags/on-broken-pipe",[C[811]]],["1.31. patchable_function_entry","compiler-flags/patchable-function-entry",[C[811]]],["1.32. print_check_cfg","compiler-flags/print-check-cfg",[C[811]]],["1.33. profile","compiler-flags/profile",[C[811]]],["1.34. profile_sample_use","compiler-flags/profile_sample_use",[C[811]]],["1.35. remap_cwd_prefix","compiler-flags/remap-cwd-prefix",[C[811]]],["1.36. remap_path_scope","compiler-flags/remap-path-scope",[C[811]]],["1.37. report_time","compiler-flags/report-time",[C[811]]],["1.38. sanitizer","compiler-flags/sanitizer",[C[811]]],["1.39. self_profile","compiler-flags/self-profile",[C[811]]],["1.40. self_profile_events","compiler-flags/self-profile-events",[C[811]]],["1.41. shell_argfiles","compiler-flags/shell-argfiles",[C[811]]],["1.42. src_hash_algorithm","compiler-flags/src-hash-algorithm",[C[811]]],["1.43. temps_dir","compiler-flags/temps-dir",[C[811]]],["1.44. tiny_const_eval_limit","compiler-flags/tiny-const-eval-limit",[C[811]]],["1.45. tls_model","compiler-flags/tls-model",[C[811]]],["1.46. ub_checks","compiler-flags/ub-checks",[C[811]]],["1.47. unsound_mir_opts","compiler-flags/unsound-mir-opts",[C[811]]],["1.48. verbose_asm","compiler-flags/verbose-asm",[C[811]]],["1.49. virtual_function_elimination","compiler-flags/virtual-function-elimination",[C[811]]],["1.50. wasm_c_abi","compiler-flags/wasm-c-abi",[C[811]]],[C[812],"language-features",N],["2.1. aarch64_ver_target_feature","language-features/aarch64-ver-target-feature",[C[812]]],["2.2. abi_avr_interrupt","language-features/abi-avr-interrupt",[C[812]]],["2.3. abi_c_cmse_nonsecure_call","language-features/abi-c-cmse-nonsecure-call",[C[812]]],["2.4. abi_msp430_interrupt","language-features/abi-msp430-interrupt",[C[812]]],["2.5. abi_ptx","language-features/abi-ptx",[C[812]]],["2.6. abi_riscv_interrupt","language-features/abi-riscv-interrupt",[C[812]]],["2.7. abi_unadjusted","language-features/abi-unadjusted",[C[812]]],["2.8. abi_vectorcall","language-features/abi-vectorcall",[C[812]]],["2.9. abi_x86_interrupt","language-features/abi-x86-interrupt",[C[812]]],["2.10. adt_const_params","language-features/adt-const-params",[C[812]]],["2.11. alloc_error_handler","language-features/alloc-error-handler",[C[812]]],["2.12. allocator_internals","language-features/allocator-internals",[C[812]]],["2.13. allow_internal_unsafe","language-features/allow-internal-unsafe",[C[812]]],["2.14. allow_internal_unstable","language-features/allow-internal-unstable",[C[812]]],["2.15. anonymous_lifetime_in_impl_trait","language-features/anonymous-lifetime-in-impl-trait",[C[812]]],["2.16. arbitrary_self_types","language-features/arbitrary-self-types",[C[812]]],["2.17. arm_target_feature","language-features/arm-target-feature",[C[812]]],["2.18. asm_const","language-features/asm-const",[C[812]]],["2.19. asm_experimental_arch","language-features/asm-experimental-arch",[C[812]]],["2.20. asm_goto","language-features/asm-goto",[C[812]]],["2.21. asm_unwind","language-features/asm-unwind",[C[812]]],["2.22. associated_const_equality","language-features/associated-const-equality",[C[812]]],["2.23. associated_type_defaults","language-features/associated-type-defaults",[C[812]]],["2.24. async_closure","language-features/async-closure",[C[812]]],["2.25. async_fn_track_caller","language-features/async-fn-track-caller",[C[812]]],["2.26. async_for_loop","language-features/async-for-loop",[C[812]]],["2.27. auto_traits","language-features/auto-traits",[C[812]]],["2.28. avx512_target_feature","language-features/avx512-target-feature",[C[812]]],["2.29. box_patterns","language-features/box-patterns",[C[812]]],["2.30. bpf_target_feature","language-features/bpf-target-feature",[C[812]]],["2.31. builtin_syntax","language-features/builtin-syntax",[C[812]]],["2.32. c_variadic","language-features/c-variadic",[C[812]]],["2.33. cfg_overflow_checks","language-features/cfg-overflow-checks",[C[812]]],["2.34. cfg_relocation_model","language-features/cfg-relocation-model",[C[812]]],["2.35. cfg_sanitize","language-features/cfg-sanitize",[C[812]]],["2.36. cfg_sanitizer_cfi","language-features/cfg-sanitizer-cfi",[C[812]]],["2.37. cfg_target_compact","language-features/cfg-target-compact",[C[812]]],["2.38. cfg_target_has_atomic","language-features/cfg-target-has-atomic",[C[812]]],["2.39. cfg_target_has_atomic_equal_alignment","language-features/cfg-target-has-atomic-equal-alignment",[C[812]]],["2.40. cfg_target_thread_local","language-features/cfg-target-thread-local",[C[812]]],["2.41. cfg_ub_checks","language-features/cfg-ub-checks",[C[812]]],["2.42. cfg_version","language-features/cfg-version",[C[812]]],["2.43. cfi_encoding","language-features/cfi-encoding",[C[812]]],["2.44. closure_lifetime_binder","language-features/closure-lifetime-binder",[C[812]]],["2.45. closure_track_caller","language-features/closure-track-caller",[C[812]]],["2.46. cmse_nonsecure_entry","language-features/cmse-nonsecure-entry",[C[812]]],["2.47. compiler_builtins","language-features/compiler-builtins",[C[812]]],["2.48. const_async_blocks","language-features/const-async-blocks",[C[812]]],["2.49. const_closures","language-features/const-closures",[C[812]]],["2.50. const_extern_fn","language-features/const-extern-fn",[C[812]]],["2.51. const_fn_floating_point_arithmetic","language-features/const-fn-floating-point-arithmetic",[C[812]]],["2.52. const_for","language-features/const-for",[C[812]]],["2.53. const_mut_refs","language-features/const-mut-refs",[C[812]]],["2.54. const_precise_live_drops","language-features/const-precise-live-drops",[C[812]]],["2.55. const_refs_to_cell","language-features/const-refs-to-cell",[C[812]]],["2.56. const_refs_to_static","language-features/const-refs-to-static",[C[812]]],["2.57. const_trait_impl","language-features/const-trait-impl",[C[812]]],["2.58. const_try","language-features/const-try",[C[812]]],["2.59. coroutine_clone","language-features/coroutine-clone",[C[812]]],["2.60. coroutines","language-features/coroutines",[C[812]]],["2.61. coverage_attribute","language-features/coverage-attribute",[C[812]]],["2.62. csky_target_feature","language-features/csky-target-feature",[C[812]]],["2.63. custom_inner_attributes","language-features/custom-inner-attributes",[C[812]]],["2.64. custom_mir","language-features/custom-mir",[C[812]]],["2.65. custom_test_frameworks","language-features/custom-test-frameworks",[C[812]]],["2.66. decl_macro","language-features/decl-macro",[C[812]]],["2.67. default_type_parameter_fallback","language-features/default-type-parameter-fallback",[C[812]]],["2.68. deprecated_safe","language-features/deprecated-safe",[C[812]]],["2.69. deprecated_suggestion","language-features/deprecated-suggestion",[C[812]]],["2.70. deref_patterns","language-features/deref-patterns",[C[812]]],["2.71. derive_smart_pointer","language-features/derive-smart-pointer",[C[812]]],["2.72. do_not_recommend","language-features/do-not-recommend",[C[812]]],["2.73. doc_auto_cfg","language-features/doc-auto-cfg",[C[812]]],["2.74. doc_cfg","language-features/doc-cfg",[C[812]]],["2.75. doc_cfg_hide","language-features/doc-cfg-hide",[C[812]]],["2.76. doc_masked","language-features/doc-masked",[C[812]]],["2.77. doc_notable_trait","language-features/doc-notable-trait",[C[812]]],["2.78. dropck_eyepatch","language-features/dropck-eyepatch",[C[812]]],["2.79. dyn_star","language-features/dyn-star",[C[812]]],["2.80. effects","language-features/effects",[C[812]]],["2.81. ermsb_target_feature","language-features/ermsb-target-feature",[C[812]]],["2.82. exhaustive_patterns","language-features/exhaustive-patterns",[C[812]]],["2.83. explicit_tail_calls","language-features/explicit-tail-calls",[C[812]]],["2.84. expr_fragment_specifier_2024","language-features/expr-fragment-specifier-2024",[C[812]]],["2.85. extended_varargs_abi_support","language-features/extended-varargs-abi-support",[C[812]]],["2.86. extern_types","language-features/extern-types",[C[812]]],["2.87. f128","language-features/f128",[C[812]]],["2.88. f16","language-features/f16",[C[812]]],["2.89. ffi_const","language-features/ffi-const",[C[812]]],["2.90. ffi_pure","language-features/ffi-pure",[C[812]]],["2.91. fn_align","language-features/fn-align",[C[812]]],["2.92. fn_delegation","language-features/fn-delegation",[C[812]]],["2.93. freeze_impls","language-features/freeze-impls",[C[812]]],["2.94. fundamental","language-features/fundamental",[C[812]]],["2.95. gen_blocks","language-features/gen-blocks",[C[812]]],["2.96. generic_arg_infer","language-features/generic-arg-infer",[C[812]]],["2.97. generic_assert","language-features/generic-assert",[C[812]]],["2.98. generic_associated_types_extended","language-features/generic-associated-types-extended",[C[812]]],["2.99. generic_const_exprs","language-features/generic-const-exprs",[C[812]]],["2.100. generic_const_items","language-features/generic-const-items",[C[812]]],["2.101. global_registration","language-features/global-registration",[C[812]]],["2.102. half_open_range_patterns_in_slices","language-features/half-open-range-patterns-in-slices",[C[812]]],["2.103. hexagon_target_feature","language-features/hexagon-target-feature",[C[812]]],["2.104. if_let_guard","language-features/if-let-guard",[C[812]]],["2.105. impl_trait_in_assoc_type","language-features/impl-trait-in-assoc-type",[C[812]]],["2.106. impl_trait_in_fn_trait_return","language-features/impl-trait-in-fn-trait-return",[C[812]]],["2.107. inherent_associated_types","language-features/inherent-associated-types",[C[812]]],["2.108. inline_const_pat","language-features/inline-const-pat",[C[812]]],["2.109. intra_doc_pointers","language-features/intra-doc-pointers",[C[812]]],["2.110. intrinsics","language-features/intrinsics",[C[812]]],["2.111. lahfsahf_target_feature","language-features/lahfsahf-target-feature",[C[812]]],["2.112. lang_items","language-features/lang-items",[C[812]]],["2.113. large_assignments","language-features/large-assignments",[C[812]]],["2.114. lazy_type_alias","language-features/lazy-type-alias",[C[812]]],["2.115. let_chains","language-features/let-chains",[C[812]]],["2.116. lifetime_capture_rules_2024","language-features/lifetime-capture-rules-2024",[C[812]]],["2.117. link_arg_attribute","language-features/link-arg-attribute",[C[812]]],["2.118. link_cfg","language-features/link-cfg",[C[812]]],["2.119. link_llvm_intrinsics","language-features/link-llvm-intrinsics",[C[812]]],["2.120. linkage","language-features/linkage",[C[812]]],["2.121. loongarch_target_feature","language-features/loongarch-target-feature",[C[812]]],["2.122. macro_metavar_expr","language-features/macro-metavar-expr",[C[812]]],["2.123. macro_metavar_expr_concat","language-features/macro-metavar-expr-concat",[C[812]]],["2.124. marker_trait_attr","language-features/marker-trait-attr",[C[812]]],["2.125. min_exhaustive_patterns","language-features/min-exhaustive-patterns",[C[812]]],["2.126. min_specialization","language-features/min-specialization",[C[812]]],["2.127. mips_target_feature","language-features/mips-target-feature",[C[812]]],["2.128. more_qualified_paths","language-features/more-qualified-paths",[C[812]]],["2.129. multiple_supertrait_upcastable","language-features/multiple-supertrait-upcastable",[C[812]]],["2.130. must_not_suspend","language-features/must-not-suspend",[C[812]]],["2.131. mut_ref","language-features/mut-ref",[C[812]]],["2.132. naked_functions","language-features/naked-functions",[C[812]]],["2.133. native_link_modifiers_as_needed","language-features/native-link-modifiers-as-needed",[C[812]]],["2.134. needs_panic_runtime","language-features/needs-panic-runtime",[C[812]]],["2.135. negative_bounds","language-features/negative-bounds",[C[812]]],["2.136. negative_impls","language-features/negative-impls",[C[812]]],["2.137. never_patterns","language-features/never-patterns",[C[812]]],["2.138. never_type","language-features/never-type",[C[812]]],["2.139. never_type_fallback","language-features/never-type-fallback",[C[812]]],["2.140. no_core","language-features/no-core",[C[812]]],["2.141. no_sanitize","language-features/no-sanitize",[C[812]]],["2.142. non_exhaustive_omitted_patterns_lint","language-features/non-exhaustive-omitted-patterns-lint",[C[812]]],["2.143. non_lifetime_binders","language-features/non-lifetime-binders",[C[812]]],["2.144. object_safe_for_dispatch","language-features/object-safe-for-dispatch",[C[812]]],["2.145. offset_of_enum","language-features/offset-of-enum",[C[812]]],["2.146. offset_of_nested","language-features/offset-of-nested",[C[812]]],["2.147. offset_of_slice","language-features/offset-of-slice",[C[812]]],["2.148. omit_gdb_pretty_printer_section","language-features/omit-gdb-pretty-printer-section",[C[812]]],["2.149. optimize_attribute","language-features/optimize-attribute",[C[812]]],["2.150. panic_runtime","language-features/panic-runtime",[C[812]]],["2.151. patchable_function_entry","language-features/patchable-function-entry",[C[812]]],["2.152. pattern_complexity","language-features/pattern-complexity",[C[812]]],["2.153. pattern_types","language-features/pattern-types",[C[812]]],["2.154. postfix_match","language-features/postfix-match",[C[812]]],["2.155. powerpc_target_feature","language-features/powerpc-target-feature",[C[812]]],["2.156. precise_capturing","language-features/precise-capturing",[C[812]]],["2.157. prelude_import","language-features/prelude-import",[C[812]]],["2.158. prfchw_target_feature","language-features/prfchw-target-feature",[C[812]]],["2.159. proc_macro_hygiene","language-features/proc-macro-hygiene",[C[812]]],["2.160. profiler_runtime","language-features/profiler-runtime",[C[812]]],["2.161. raw_ref_op","language-features/raw-ref-op",[C[812]]],["2.162. ref_pat_eat_one_layer_2024","language-features/ref-pat-eat-one-layer-2024",[C[812]]],["2.163. ref_pat_eat_one_layer_2024_structural","language-features/ref-pat-eat-one-layer-2024-structural",[C[812]]],["2.164. register_tool","language-features/register-tool",[C[812]]],["2.165. repr_simd","language-features/repr-simd",[C[812]]],["2.166. repr128","language-features/repr128",[C[812]]],["2.167. result_ffi_guarantees","language-features/result-ffi-guarantees",[C[812]]],["2.168. return_type_notation","language-features/return-type-notation",[C[812]]],["2.169. riscv_target_feature","language-features/riscv-target-feature",[C[812]]],["2.170. rtm_target_feature","language-features/rtm-target-feature",[C[812]]],["2.171. rust_cold_cc","language-features/rust-cold-cc",[C[812]]],["2.172. rustc_allow_const_fn_unstable","language-features/rustc-allow-const-fn-unstable",[C[812]]],["2.173. rustc_attrs","language-features/rustc-attrs",[C[812]]],["2.174. rustc_private","language-features/rustc-private",[C[812]]],["2.175. rustdoc_internals","language-features/rustdoc-internals",[C[812]]],["2.176. rustdoc_missing_doc_code_examples","language-features/rustdoc-missing-doc-code-examples",[C[812]]],["2.177. shorter_tail_lifetimes","language-features/shorter-tail-lifetimes",[C[812]]],["2.178. simd_ffi","language-features/simd-ffi",[C[812]]],["2.179. specialization","language-features/specialization",[C[812]]],["2.180. sse4a_target_feature","language-features/sse4a-target-feature",[C[812]]],["2.181. staged_api","language-features/staged-api",[C[812]]],["2.182. start","language-features/start",[C[812]]],["2.183. stmt_expr_attributes","language-features/stmt-expr-attributes",[C[812]]],["2.184. strict_provenance","language-features/strict-provenance",[C[812]]],["2.185. string_deref_patterns","language-features/string-deref-patterns",[C[812]]],["2.186. structural_match","language-features/structural-match",[C[812]]],["2.187. target_feature_11","language-features/target-feature-11",[C[812]]],["2.188. tbm_target_feature","language-features/tbm-target-feature",[C[812]]],["2.189. test_unstable_lint","language-features/test-unstable-lint",[C[812]]],["2.190. thread_local","language-features/thread-local",[C[812]]],["2.191. trait_alias","language-features/trait-alias",[C[812]]],["2.192. trait_upcasting","language-features/trait-upcasting",[C[812]]],["2.193. transmute_generic_consts","language-features/transmute-generic-consts",[C[812]]],["2.194. transparent_unions","language-features/transparent-unions",[C[812]]],["2.195. trivial_bounds","language-features/trivial-bounds",[C[812]]],["2.196. try_blocks","language-features/try-blocks",[C[812]]],["2.197. type_alias_impl_trait","language-features/type-alias-impl-trait",[C[812]]],["2.198. type_changing_struct_update","language-features/type-changing-struct-update",[C[812]]],["2.199. unboxed_closures","language-features/unboxed-closures",[C[812]]],["2.200. unnamed_fields","language-features/unnamed-fields",[C[812]]],["2.201. unsafe_attributes","language-features/unsafe-attributes",[C[812]]],["2.202. unsafe_extern_blocks","language-features/unsafe-extern-blocks",[C[812]]],["2.203. unsized_fn_params","language-features/unsized-fn-params",[C[812]]],["2.204. unsized_locals","language-features/unsized-locals",[C[812]]],["2.205. unsized_tuple_coercion","language-features/unsized-tuple-coercion",[C[812]]],["2.206. used_with_arg","language-features/used-with-arg",[C[812]]],["2.207. wasm_target_feature","language-features/wasm-target-feature",[C[812]]],["2.208. with_negative_coherence","language-features/with-negative-coherence",[C[812]]],["2.209. x86_amx_intrinsics","language-features/x86-amx-intrinsics",[C[812]]],["2.210. xop_target_feature","language-features/xop-target-feature",[C[812]]],["2.211. yeet_expr","language-features/yeet-expr",[C[812]]],[C[813],"library-features",N],["3.1. acceptfilter","library-features/acceptfilter",[C[813]]],["3.2. addr_parse_ascii","library-features/addr-parse-ascii",[C[813]]],["3.3. alloc_error_hook","library-features/alloc-error-hook",[C[813]]],["3.4. alloc_internals","library-features/alloc-internals",[C[813]]],["3.5. alloc_layout_extra","library-features/alloc-layout-extra",[C[813]]],["3.6. allocator_api","library-features/allocator-api",[C[813]]],["3.7. array_chunks","library-features/array-chunks",[C[813]]],["3.8. array_into_iter_constructors","library-features/array-into-iter-constructors",[C[813]]],["3.9. array_ptr_get","library-features/array-ptr-get",[C[813]]],["3.10. array_repeat","library-features/array-repeat",[C[813]]],["3.11. array_try_from_fn","library-features/array-try-from-fn",[C[813]]],["3.12. array_try_map","library-features/array-try-map",[C[813]]],["3.13. array_windows","library-features/array-windows",[C[813]]],["3.14. as_array_of_cells","library-features/as-array-of-cells",[C[813]]],["3.15. ascii_char","library-features/ascii-char",[C[813]]],["3.16. ascii_char_variants","library-features/ascii-char-variants",[C[813]]],["3.17. assert_matches","library-features/assert-matches",[C[813]]],["3.18. async_drop","library-features/async-drop",[C[813]]],["3.19. async_fn_traits","library-features/async-fn-traits",[C[813]]],["3.20. async_gen_internals","library-features/async-gen-internals",[C[813]]],["3.21. async_iter_from_iter","library-features/async-iter-from-iter",[C[813]]],["3.22. async_iterator","library-features/async-iterator",[C[813]]],["3.23. atomic_from_mut","library-features/atomic-from-mut",[C[813]]],["3.24. backtrace_frames","library-features/backtrace-frames",[C[813]]],["3.25. bigint_helper_methods","library-features/bigint-helper-methods",[C[813]]],["3.26. binary_heap_drain_sorted","library-features/binary-heap-drain-sorted",[C[813]]],["3.27. binary_heap_into_iter_sorted","library-features/binary-heap-into-iter-sorted",[C[813]]],["3.28. bound_as_ref","library-features/bound-as-ref",[C[813]]],["3.29. box_into_boxed_slice","library-features/box-into-boxed-slice",[C[813]]],["3.30. box_into_inner","library-features/box-into-inner",[C[813]]],["3.31. btree_cursors","library-features/btree-cursors",[C[813]]],["3.32. btree_extract_if","library-features/btree-extract-if",[C[813]]],["3.33. btreemap_alloc","library-features/btreemap-alloc",[C[813]]],["3.34. buf_read_has_data_left","library-features/buf-read-has-data-left",[C[813]]],["3.35. bufread_skip_until","library-features/bufread-skip-until",[C[813]]],["3.36. build_hasher_default_const_new","library-features/build-hasher-default-const-new",[C[813]]],["3.37. c_size_t","library-features/c-size-t",[C[813]]],["3.38. c_str_module","library-features/c-str-module",[C[813]]],["3.39. c_void_variant","library-features/c-void-variant",[C[813]]],["3.40. can_vector","library-features/can-vector",[C[813]]],["3.41. cell_leak","library-features/cell-leak",[C[813]]],["3.42. cell_update","library-features/cell-update",[C[813]]],["3.43. cfg_accessible","library-features/cfg-accessible",[C[813]]],["3.44. cfg_eval","library-features/cfg-eval",[C[813]]],["3.45. cfg_match","library-features/cfg-match",[C[813]]],["3.46. char_indices_offset","library-features/char-indices-offset",[C[813]]],["3.47. char_internals","library-features/char-internals",[C[813]]],["3.48. char_min","library-features/char-min",[C[813]]],["3.49. clone_to_uninit","library-features/clone-to-uninit",[C[813]]],["3.50. cmp_minmax","library-features/cmp-minmax",[C[813]]],["3.51. coerce_unsized","library-features/coerce-unsized",[C[813]]],["3.52. concat_bytes","library-features/concat-bytes",[C[813]]],["3.53. concat_idents","library-features/concat-idents",[C[813]]],["3.54. const_align_of_val","library-features/const-align-of-val",[C[813]]],["3.55. const_align_of_val_raw","library-features/const-align-of-val-raw",[C[813]]],["3.56. const_align_offset","library-features/const-align-offset",[C[813]]],["3.57. const_alloc_error","library-features/const-alloc-error",[C[813]]],["3.58. const_alloc_layout","library-features/const-alloc-layout",[C[813]]],["3.59. const_arguments_as_str","library-features/const-arguments-as-str",[C[813]]],["3.60. const_array_from_ref","library-features/const-array-from-ref",[C[813]]],["3.61. const_array_into_iter_constructors","library-features/const-array-into-iter-constructors",[C[813]]],["3.62. const_atomic_from_ptr","library-features/const-atomic-from-ptr",[C[813]]],["3.63. const_bigint_helper_methods","library-features/const-bigint-helper-methods",[C[813]]],["3.64. const_binary_heap_new_in","library-features/const-binary-heap-new-in",[C[813]]],["3.65. const_black_box","library-features/const-black-box",[C[813]]],["3.66. const_box","library-features/const-box",[C[813]]],["3.67. const_btree_len","library-features/const-btree-len",[C[813]]],["3.68. const_cell_into_inner","library-features/const-cell-into-inner",[C[813]]],["3.69. const_collections_with_hasher","library-features/const-collections-with-hasher",[C[813]]],["3.70. const_cow_is_borrowed","library-features/const-cow-is-borrowed",[C[813]]],["3.71. const_eval_select","library-features/const-eval-select",[C[813]]],["3.72. const_exact_div","library-features/const-exact-div",[C[813]]],["3.73. const_float_bits_conv","library-features/const-float-bits-conv",[C[813]]],["3.74. const_float_classify","library-features/const-float-classify",[C[813]]],["3.75. const_fmt_arguments_new","library-features/const-fmt-arguments-new",[C[813]]],["3.76. const_format_args","library-features/const-format-args",[C[813]]],["3.77. const_hash","library-features/const-hash",[C[813]]],["3.78. const_heap","library-features/const-heap",[C[813]]],["3.79. const_index_range_slice_index","library-features/const-index-range-slice-index",[C[813]]],["3.80. const_int_from_str","library-features/const-int-from-str",[C[813]]],["3.81. const_intoiterator_identity","library-features/const-intoiterator-identity",[C[813]]],["3.82. const_intrinsic_compare_bytes","library-features/const-intrinsic-compare-bytes",[C[813]]],["3.83. const_intrinsic_copy","library-features/const-intrinsic-copy",[C[813]]],["3.84. const_intrinsic_forget","library-features/const-intrinsic-forget",[C[813]]],["3.85. const_intrinsic_raw_eq","library-features/const-intrinsic-raw-eq",[C[813]]],["3.86. const_ip","library-features/const-ip",[C[813]]],["3.87. const_ipv4","library-features/const-ipv4",[C[813]]],["3.88. const_ipv6","library-features/const-ipv6",[C[813]]],["3.89. const_likely","library-features/const-likely",[C[813]]],["3.90. const_maybe_uninit_array_assume_init","library-features/const-maybe-uninit-array-assume-init",[C[813]]],["3.91. const_maybe_uninit_as_mut_ptr","library-features/const-maybe-uninit-as-mut-ptr",[C[813]]],["3.92. const_maybe_uninit_assume_init","library-features/const-maybe-uninit-assume-init",[C[813]]],["3.93. const_maybe_uninit_uninit_array","library-features/const-maybe-uninit-uninit-array",[C[813]]],["3.94. const_maybe_uninit_write","library-features/const-maybe-uninit-write",[C[813]]],["3.95. const_nonnull_new","library-features/const-nonnull-new",[C[813]]],["3.96. const_num_midpoint","library-features/const-num-midpoint",[C[813]]],["3.97. const_option","library-features/const-option",[C[813]]],["3.98. const_option_ext","library-features/const-option-ext",[C[813]]],["3.99. const_pin","library-features/const-pin",[C[813]]],["3.100. const_pointer_is_aligned","library-features/const-pointer-is-aligned",[C[813]]],["3.101. const_pref_align_of","library-features/const-pref-align-of",[C[813]]],["3.102. const_ptr_as_ref","library-features/const-ptr-as-ref",[C[813]]],["3.103. const_ptr_is_null","library-features/const-ptr-is-null",[C[813]]],["3.104. const_ptr_sub_ptr","library-features/const-ptr-sub-ptr",[C[813]]],["3.105. const_ptr_write","library-features/const-ptr-write",[C[813]]],["3.106. const_range_bounds","library-features/const-range-bounds",[C[813]]],["3.107. const_raw_ptr_comparison","library-features/const-raw-ptr-comparison",[C[813]]],["3.108. const_replace","library-features/const-replace",[C[813]]],["3.109. const_result","library-features/const-result",[C[813]]],["3.110. const_size_of_val","library-features/const-size-of-val",[C[813]]],["3.111. const_size_of_val_raw","library-features/const-size-of-val-raw",[C[813]]],["3.112. const_slice_first_last","library-features/const-slice-first-last",[C[813]]],["3.113. const_slice_first_last_chunk","library-features/const-slice-first-last-chunk",[C[813]]],["3.114. const_slice_flatten","library-features/const-slice-flatten",[C[813]]],["3.115. const_slice_from_mut_ptr_range","library-features/const-slice-from-mut-ptr-range",[C[813]]],["3.116. const_slice_from_ptr_range","library-features/const-slice-from-ptr-range",[C[813]]],["3.117. const_slice_from_raw_parts_mut","library-features/const-slice-from-raw-parts-mut",[C[813]]],["3.118. const_slice_from_ref","library-features/const-slice-from-ref",[C[813]]],["3.119. const_slice_index","library-features/const-slice-index",[C[813]]],["3.120. const_slice_split_at_mut","library-features/const-slice-split-at-mut",[C[813]]],["3.121. const_str_from_raw_parts_mut","library-features/const-str-from-raw-parts-mut",[C[813]]],["3.122. const_str_from_utf8","library-features/const-str-from-utf8",[C[813]]],["3.123. const_str_from_utf8_unchecked_mut","library-features/const-str-from-utf8-unchecked-mut",[C[813]]],["3.124. const_strict_overflow_ops","library-features/const-strict-overflow-ops",[C[813]]],["3.125. const_swap","library-features/const-swap",[C[813]]],["3.126. const_three_way_compare","library-features/const-three-way-compare",[C[813]]],["3.127. const_type_id","library-features/const-type-id",[C[813]]],["3.128. const_type_name","library-features/const-type-name",[C[813]]],["3.129. const_typed_swap","library-features/const-typed-swap",[C[813]]],["3.130. const_ub_checks","library-features/const-ub-checks",[C[813]]],["3.131. const_unicode_case_lookup","library-features/const-unicode-case-lookup",[C[813]]],["3.132. const_unsafecell_get_mut","library-features/const-unsafecell-get-mut",[C[813]]],["3.133. const_waker","library-features/const-waker",[C[813]]],["3.134. container_error_extra","library-features/container-error-extra",[C[813]]],["3.135. context_ext","library-features/context-ext",[C[813]]],["3.136. control_flow_enum","library-features/control-flow-enum",[C[813]]],["3.137. convert_float_to_int","library-features/convert-float-to-int",[C[813]]],["3.138. core_intrinsics","library-features/core-intrinsics",[C[813]]],["3.139. core_io_borrowed_buf","library-features/core-io-borrowed-buf",[C[813]]],["3.140. core_pattern_type","library-features/core-pattern-type",[C[813]]],["3.141. core_pattern_types","library-features/core-pattern-types",[C[813]]],["3.142. core_private_bignum","library-features/core-private-bignum",[C[813]]],["3.143. core_private_diy_float","library-features/core-private-diy-float",[C[813]]],["3.144. coroutine_trait","library-features/coroutine-trait",[C[813]]],["3.145. cow_is_borrowed","library-features/cow-is-borrowed",[C[813]]],["3.146. cstr_bytes","library-features/cstr-bytes",[C[813]]],["3.147. cstr_internals","library-features/cstr-internals",[C[813]]],["3.148. cursor_remaining","library-features/cursor-remaining",[C[813]]],["3.149. deadline_api","library-features/deadline-api",[C[813]]],["3.150. debug_closure_helpers","library-features/debug-closure-helpers",[C[813]]],["3.151. dec2flt","library-features/dec2flt",[C[813]]],["3.152. deref_pure_trait","library-features/deref-pure-trait",[C[813]]],["3.153. derive_clone_copy","library-features/derive-clone-copy",[C[813]]],["3.154. derive_const","library-features/derive-const",[C[813]]],["3.155. derive_eq","library-features/derive-eq",[C[813]]],["3.156. dir_entry_ext2","library-features/dir-entry-ext2",[C[813]]],["3.157. discriminant_kind","library-features/discriminant-kind",[C[813]]],["3.158. dispatch_from_dyn","library-features/dispatch-from-dyn",[C[813]]],["3.159. downcast_unchecked","library-features/downcast-unchecked",[C[813]]],["3.160. drain_keep_rest","library-features/drain-keep-rest",[C[813]]],["3.161. duration_constants","library-features/duration-constants",[C[813]]],["3.162. duration_constructors","library-features/duration-constructors",[C[813]]],["3.163. duration_consts_float","library-features/duration-consts-float",[C[813]]],["3.164. duration_millis_float","library-features/duration-millis-float",[C[813]]],["3.165. duration_units","library-features/duration-units",[C[813]]],["3.166. edition_panic","library-features/edition-panic",[C[813]]],["3.167. effect_types","library-features/effect-types",[C[813]]],["3.168. entry_insert","library-features/entry-insert",[C[813]]],["3.169. error_generic_member_access","library-features/error-generic-member-access",[C[813]]],["3.170. error_iter","library-features/error-iter",[C[813]]],["3.171. error_reporter","library-features/error-reporter",[C[813]]],["3.172. error_type_id","library-features/error-type-id",[C[813]]],["3.173. exact_size_is_empty","library-features/exact-size-is-empty",[C[813]]],["3.174. exclusive_wrapper","library-features/exclusive-wrapper",[C[813]]],["3.175. exit_status_error","library-features/exit-status-error",[C[813]]],["3.176. exitcode_exit_method","library-features/exitcode-exit-method",[C[813]]],["3.177. exposed_provenance","library-features/exposed-provenance",[C[813]]],["3.178. extend_one","library-features/extend-one",[C[813]]],["3.179. extend_one_unchecked","library-features/extend-one-unchecked",[C[813]]],["3.180. extract_if","library-features/extract-if",[C[813]]],["3.181. fd","library-features/fd",[C[813]]],["3.182. fd_read","library-features/fd-read",[C[813]]],["3.183. float_gamma","library-features/float-gamma",[C[813]]],["3.184. float_minimum_maximum","library-features/float-minimum-maximum",[C[813]]],["3.185. float_next_up_down","library-features/float-next-up-down",[C[813]]],["3.186. flt2dec","library-features/flt2dec",[C[813]]],["3.187. fmt_helpers_for_derive","library-features/fmt-helpers-for-derive",[C[813]]],["3.188. fmt_internals","library-features/fmt-internals",[C[813]]],["3.189. fn_ptr_trait","library-features/fn-ptr-trait",[C[813]]],["3.190. fn_traits","library-features/fn-traits",[C[813]]],["3.191. forget_unsized","library-features/forget-unsized",[C[813]]],["3.192. format_args_nl","library-features/format-args-nl",[C[813]]],["3.193. freeze","library-features/freeze",[C[813]]],["3.194. future_join","library-features/future-join",[C[813]]],["3.195. gen_future","library-features/gen-future",[C[813]]],["3.196. generic_assert_internals","library-features/generic-assert-internals",[C[813]]],["3.197. get_many_mut","library-features/get-many-mut",[C[813]]],["3.198. get_mut_unchecked","library-features/get-mut-unchecked",[C[813]]],["3.199. hash_extract_if","library-features/hash-extract-if",[C[813]]],["3.200. hash_raw_entry","library-features/hash-raw-entry",[C[813]]],["3.201. hash_set_entry","library-features/hash-set-entry",[C[813]]],["3.202. hasher_prefixfree_extras","library-features/hasher-prefixfree-extras",[C[813]]],["3.203. hashmap_internals","library-features/hashmap-internals",[C[813]]],["3.204. hint_must_use","library-features/hint-must-use",[C[813]]],["3.205. inplace_iteration","library-features/inplace-iteration",[C[813]]],["3.206. int_roundings","library-features/int-roundings",[C[813]]],["3.207. integer_atomics","library-features/integer-atomics",[C[813]]],["3.208. integer_sign_cast","library-features/integer-sign-cast",[C[813]]],["3.209. internal_impls_macro","library-features/internal-impls-macro",[C[813]]],["3.210. internal_output_capture","library-features/internal-output-capture",[C[813]]],["3.211. io_error_more","library-features/io-error-more",[C[813]]],["3.212. io_error_uncategorized","library-features/io-error-uncategorized",[C[813]]],["3.213. ip","library-features/ip",[C[813]]],["3.214. is_ascii_octdigit","library-features/is-ascii-octdigit",[C[813]]],["3.215. is_none_or","library-features/is-none-or",[C[813]]],["3.216. is_riscv_feature_detected","library-features/is-riscv-feature-detected",[C[813]]],["3.217. is_sorted","library-features/is-sorted",[C[813]]],["3.218. is_val_statically_known","library-features/is-val-statically-known",[C[813]]],["3.219. isqrt","library-features/isqrt",[C[813]]],["3.220. iter_advance_by","library-features/iter-advance-by",[C[813]]],["3.221. iter_array_chunks","library-features/iter-array-chunks",[C[813]]],["3.222. iter_chain","library-features/iter-chain",[C[813]]],["3.223. iter_collect_into","library-features/iter-collect-into",[C[813]]],["3.224. iter_from_coroutine","library-features/iter-from-coroutine",[C[813]]],["3.225. iter_intersperse","library-features/iter-intersperse",[C[813]]],["3.226. iter_is_partitioned","library-features/iter-is-partitioned",[C[813]]],["3.227. iter_map_windows","library-features/iter-map-windows",[C[813]]],["3.228. iter_next_chunk","library-features/iter-next-chunk",[C[813]]],["3.229. iter_order_by","library-features/iter-order-by",[C[813]]],["3.230. iter_partition_in_place","library-features/iter-partition-in-place",[C[813]]],["3.231. iter_repeat_n","library-features/iter-repeat-n",[C[813]]],["3.232. iterator_try_collect","library-features/iterator-try-collect",[C[813]]],["3.233. iterator_try_reduce","library-features/iterator-try-reduce",[C[813]]],["3.234. junction_point","library-features/junction-point",[C[813]]],["3.235. layout_for_ptr","library-features/layout-for-ptr",[C[813]]],["3.236. lazy_cell_into_inner","library-features/lazy-cell-into-inner",[C[813]]],["3.237. liballoc_internals","library-features/liballoc-internals",[C[813]]],["3.238. libstd_sys_internals","library-features/libstd-sys-internals",[C[813]]],["3.239. linked_list_cursors","library-features/linked-list-cursors",[C[813]]],["3.240. linked_list_remove","library-features/linked-list-remove",[C[813]]],["3.241. linked_list_retain","library-features/linked-list-retain",[C[813]]],["3.242. linux_pidfd","library-features/linux-pidfd",[C[813]]],["3.243. local_waker","library-features/local-waker",[C[813]]],["3.244. log_syntax","library-features/log-syntax",[C[813]]],["3.245. map_entry_replace","library-features/map-entry-replace",[C[813]]],["3.246. map_many_mut","library-features/map-many-mut",[C[813]]],["3.247. map_try_insert","library-features/map-try-insert",[C[813]]],["3.248. mapped_lock_guards","library-features/mapped-lock-guards",[C[813]]],["3.249. maybe_uninit_array_assume_init","library-features/maybe-uninit-array-assume-init",[C[813]]],["3.250. maybe_uninit_as_bytes","library-features/maybe-uninit-as-bytes",[C[813]]],["3.251. maybe_uninit_fill","library-features/maybe-uninit-fill",[C[813]]],["3.252. maybe_uninit_slice","library-features/maybe-uninit-slice",[C[813]]],["3.253. maybe_uninit_uninit_array","library-features/maybe-uninit-uninit-array",[C[813]]],["3.254. maybe_uninit_uninit_array_transpose","library-features/maybe-uninit-uninit-array-transpose",[C[813]]],["3.255. maybe_uninit_write_slice","library-features/maybe-uninit-write-slice",[C[813]]],["3.256. mem_copy_fn","library-features/mem-copy-fn",[C[813]]],["3.257. more_float_constants","library-features/more-float-constants",[C[813]]],["3.258. new_range_api","library-features/new-range-api",[C[813]]],["3.259. new_uninit","library-features/new-uninit",[C[813]]],["3.260. non_zero_count_ones","library-features/non-zero-count-ones",[C[813]]],["3.261. nonzero_from_mut","library-features/nonzero-from-mut",[C[813]]],["3.262. nonzero_internals","library-features/nonzero-internals",[C[813]]],["3.263. nonzero_ops","library-features/nonzero-ops",[C[813]]],["3.264. noop_waker","library-features/noop-waker",[C[813]]],["3.265. num_midpoint","library-features/num-midpoint",[C[813]]],["3.266. numfmt","library-features/numfmt",[C[813]]],["3.267. once_cell_get_mut","library-features/once-cell-get-mut",[C[813]]],["3.268. once_cell_try","library-features/once-cell-try",[C[813]]],["3.269. once_cell_try_insert","library-features/once-cell-try-insert",[C[813]]],["3.270. one_sided_range","library-features/one-sided-range",[C[813]]],["3.271. option_get_or_insert_default","library-features/option-get-or-insert-default",[C[813]]],["3.272. option_zip","library-features/option-zip",[C[813]]],["3.273. os_str_display","library-features/os-str-display",[C[813]]],["3.274. os_str_slice","library-features/os-str-slice",[C[813]]],["3.275. os_string_pathbuf_leak","library-features/os-string-pathbuf-leak",[C[813]]],["3.276. panic_abort","library-features/panic-abort",[C[813]]],["3.277. panic_always_abort","library-features/panic-always-abort",[C[813]]],["3.278. panic_backtrace_config","library-features/panic-backtrace-config",[C[813]]],["3.279. panic_can_unwind","library-features/panic-can-unwind",[C[813]]],["3.280. panic_internals","library-features/panic-internals",[C[813]]],["3.281. panic_payload_as_str","library-features/panic-payload-as-str",[C[813]]],["3.282. panic_unwind","library-features/panic-unwind",[C[813]]],["3.283. panic_update_hook","library-features/panic-update-hook",[C[813]]],["3.284. path_add_extension","library-features/path-add-extension",[C[813]]],["3.285. path_file_prefix","library-features/path-file-prefix",[C[813]]],["3.286. pattern","library-features/pattern",[C[813]]],["3.287. peer_credentials_unix_socket","library-features/peer-credentials-unix-socket",[C[813]]],["3.288. pin_deref_mut","library-features/pin-deref-mut",[C[813]]],["3.289. pointer_is_aligned_to","library-features/pointer-is-aligned-to",[C[813]]],["3.290. pointer_like_trait","library-features/pointer-like-trait",[C[813]]],["3.291. portable_simd","library-features/portable-simd",[C[813]]],["3.292. prelude_2024","library-features/prelude-2024",[C[813]]],["3.293. print_internals","library-features/print-internals",[C[813]]],["3.294. proc_macro_def_site","library-features/proc-macro-def-site",[C[813]]],["3.295. proc_macro_diagnostic","library-features/proc-macro-diagnostic",[C[813]]],["3.296. proc_macro_expand","library-features/proc-macro-expand",[C[813]]],["3.297. proc_macro_internals","library-features/proc-macro-internals",[C[813]]],["3.298. proc_macro_quote","library-features/proc-macro-quote",[C[813]]],["3.299. proc_macro_span","library-features/proc-macro-span",[C[813]]],["3.300. proc_macro_tracked_env","library-features/proc-macro-tracked-env",[C[813]]],["3.301. process_exitcode_internals","library-features/process-exitcode-internals",[C[813]]],["3.302. process_internals","library-features/process-internals",[C[813]]],["3.303. profiler_runtime_lib","library-features/profiler-runtime-lib",[C[813]]],["3.304. ptr_alignment_type","library-features/ptr-alignment-type",[C[813]]],["3.305. ptr_as_ref_unchecked","library-features/ptr-as-ref-unchecked",[C[813]]],["3.306. ptr_as_uninit","library-features/ptr-as-uninit",[C[813]]],["3.307. ptr_internals","library-features/ptr-internals",[C[813]]],["3.308. ptr_mask","library-features/ptr-mask",[C[813]]],["3.309. ptr_metadata","library-features/ptr-metadata",[C[813]]],["3.310. ptr_sub_ptr","library-features/ptr-sub-ptr",[C[813]]],["3.311. pub_crate_should_not_need_unstable_attr","library-features/pub-crate-should-not-need-unstable-attr",[C[813]]],["3.312. raw_os_error_ty","library-features/raw-os-error-ty",[C[813]]],["3.313. raw_slice_split","library-features/raw-slice-split",[C[813]]],["3.314. raw_vec_internals","library-features/raw-vec-internals",[C[813]]],["3.315. read_buf","library-features/read-buf",[C[813]]],["3.316. ready_into_inner","library-features/ready-into-inner",[C[813]]],["3.317. receiver_trait","library-features/receiver-trait",[C[813]]],["3.318. reentrant_lock","library-features/reentrant-lock",[C[813]]],["3.319. restricted_std","library-features/restricted-std",[C[813]]],["3.320. result_flattening","library-features/result-flattening",[C[813]]],["3.321. round_char_boundary","library-features/round-char-boundary",[C[813]]],["3.322. rt","library-features/rt",[C[813]]],["3.323. rustc_encodable_decodable","library-features/rustc-encodable-decodable",[C[813]]],["3.324. sealed","library-features/sealed",[C[813]]],["3.325. seek_stream_len","library-features/seek-stream-len",[C[813]]],["3.326. set_ptr_value","library-features/set-ptr-value",[C[813]]],["3.327. setgroups","library-features/setgroups",[C[813]]],["3.328. sgx_platform","library-features/sgx-platform",[C[813]]],["3.329. sized_type_properties","library-features/sized-type-properties",[C[813]]],["3.330. slice_as_chunks","library-features/slice-as-chunks",[C[813]]],["3.331. slice_concat_ext","library-features/slice-concat-ext",[C[813]]],["3.332. slice_concat_trait","library-features/slice-concat-trait",[C[813]]],["3.333. slice_from_ptr_range","library-features/slice-from-ptr-range",[C[813]]],["3.334. slice_index_methods","library-features/slice-index-methods",[C[813]]],["3.335. slice_internals","library-features/slice-internals",[C[813]]],["3.336. slice_iter_mut_as_mut_slice","library-features/slice-iter-mut-as-mut-slice",[C[813]]],["3.337. slice_partition_dedup","library-features/slice-partition-dedup",[C[813]]],["3.338. slice_pattern","library-features/slice-pattern",[C[813]]],["3.339. slice_ptr_get","library-features/slice-ptr-get",[C[813]]],["3.340. slice_range","library-features/slice-range",[C[813]]],["3.341. slice_split_once","library-features/slice-split-once",[C[813]]],["3.342. slice_swap_unchecked","library-features/slice-swap-unchecked",[C[813]]],["3.343. slice_take","library-features/slice-take",[C[813]]],["3.344. solid_ext","library-features/solid-ext",[C[813]]],["3.345. sort_floats","library-features/sort-floats",[C[813]]],["3.346. split_array","library-features/split-array",[C[813]]],["3.347. split_as_slice","library-features/split-as-slice",[C[813]]],["3.348. std_internals","library-features/std-internals",[C[813]]],["3.349. stdarch_arm_feature_detection","library-features/stdarch-arm-feature-detection",[C[813]]],["3.350. stdarch_mips_feature_detection","library-features/stdarch-mips-feature-detection",[C[813]]],["3.351. stdarch_powerpc_feature_detection","library-features/stdarch-powerpc-feature-detection",[C[813]]],["3.352. stdio_makes_pipe","library-features/stdio-makes-pipe",[C[813]]],["3.353. step_trait","library-features/step-trait",[C[813]]],["3.354. str_from_raw_parts","library-features/str-from-raw-parts",[C[813]]],["3.355. str_from_utf16_endian","library-features/str-from-utf16-endian",[C[813]]],["3.356. str_internals","library-features/str-internals",[C[813]]],["3.357. str_lines_remainder","library-features/str-lines-remainder",[C[813]]],["3.358. str_split_inclusive_remainder","library-features/str-split-inclusive-remainder",[C[813]]],["3.359. str_split_remainder","library-features/str-split-remainder",[C[813]]],["3.360. str_split_whitespace_remainder","library-features/str-split-whitespace-remainder",[C[813]]],["3.361. strict_overflow_ops","library-features/strict-overflow-ops",[C[813]]],["3.362. strict_provenance_atomic_ptr","library-features/strict-provenance-atomic-ptr",[C[813]]],["3.363. string_extend_from_within","library-features/string-extend-from-within",[C[813]]],["3.364. string_remove_matches","library-features/string-remove-matches",[C[813]]],["3.365. sync_unsafe_cell","library-features/sync-unsafe-cell",[C[813]]],["3.366. tcp_deferaccept","library-features/tcp-deferaccept",[C[813]]],["3.367. tcp_linger","library-features/tcp-linger",[C[813]]],["3.368. tcp_quickack","library-features/tcp-quickack",[C[813]]],["3.369. tcplistener_into_incoming","library-features/tcplistener-into-incoming",[C[813]]],["3.370. test","library-features/test",[C[813]]],["3.371. thin_box","library-features/thin-box",[C[813]]],["3.372. thread_id_value","library-features/thread-id-value",[C[813]]],["3.373. thread_local_internals","library-features/thread-local-internals",[C[813]]],["3.374. thread_sleep_until","library-features/thread-sleep-until",[C[813]]],["3.375. thread_spawn_unchecked","library-features/thread-spawn-unchecked",[C[813]]],["3.376. trace_macros","library-features/trace-macros",[C[813]]],["3.377. track_path","library-features/track-path",[C[813]]],["3.378. transmutability","library-features/transmutability",[C[813]]],["3.379. trusted_fused","library-features/trusted-fused",[C[813]]],["3.380. trusted_len","library-features/trusted-len",[C[813]]],["3.381. trusted_len_next_unchecked","library-features/trusted-len-next-unchecked",[C[813]]],["3.382. trusted_random_access","library-features/trusted-random-access",[C[813]]],["3.383. trusted_step","library-features/trusted-step",[C[813]]],["3.384. try_find","library-features/try-find",[C[813]]],["3.385. try_reserve_kind","library-features/try-reserve-kind",[C[813]]],["3.386. try_trait_v2","library-features/try-trait-v2",[C[813]]],["3.387. try_trait_v2_residual","library-features/try-trait-v2-residual",[C[813]]],["3.388. try_trait_v2_yeet","library-features/try-trait-v2-yeet",[C[813]]],["3.389. try_with_capacity","library-features/try-with-capacity",[C[813]]],["3.390. tuple_trait","library-features/tuple-trait",[C[813]]],["3.391. type_ascription","library-features/type-ascription",[C[813]]],["3.392. ub_checks","library-features/ub-checks",[C[813]]],["3.393. uefi_std","library-features/uefi-std",[C[813]]],["3.394. unchecked_neg","library-features/unchecked-neg",[C[813]]],["3.395. unchecked_shifts","library-features/unchecked-shifts",[C[813]]],["3.396. unicode_internals","library-features/unicode-internals",[C[813]]],["3.397. unique_rc_arc","library-features/unique-rc-arc",[C[813]]],["3.398. unix_file_vectored_at","library-features/unix-file-vectored-at",[C[813]]],["3.399. unix_set_mark","library-features/unix-set-mark",[C[813]]],["3.400. unix_socket_ancillary_data","library-features/unix-socket-ancillary-data",[C[813]]],["3.401. unix_socket_peek","library-features/unix-socket-peek",[C[813]]],["3.402. unsafe_cell_from_mut","library-features/unsafe-cell-from-mut",[C[813]]],["3.403. unsafe_pin_internals","library-features/unsafe-pin-internals",[C[813]]],["3.404. unsize","library-features/unsize",[C[813]]],["3.405. unwrap_infallible","library-features/unwrap-infallible",[C[813]]],["3.406. update_panic_count","library-features/update-panic-count",[C[813]]],["3.407. utf16_extra","library-features/utf16-extra",[C[813]]],["3.408. utf16_extra_const","library-features/utf16-extra-const",[C[813]]],["3.409. variant_count","library-features/variant-count",[C[813]]],["3.410. vec_into_raw_parts","library-features/vec-into-raw-parts",[C[813]]],["3.411. vec_pop_if","library-features/vec-pop-if",[C[813]]],["3.412. vec_push_within_capacity","library-features/vec-push-within-capacity",[C[813]]],["3.413. vec_split_at_spare","library-features/vec-split-at-spare",[C[813]]],["3.414. waker_getters","library-features/waker-getters",[C[813]]],["3.415. wasi_ext","library-features/wasi-ext",[C[813]]],["3.416. windows_by_handle","library-features/windows-by-handle",[C[813]]],["3.417. windows_c","library-features/windows-c",[C[813]]],["3.418. windows_change_time","library-features/windows-change-time",[C[813]]],["3.419. windows_handle","library-features/windows-handle",[C[813]]],["3.420. windows_net","library-features/windows-net",[C[813]]],["3.421. windows_process_exit_code_from","library-features/windows-process-exit-code-from",[C[813]]],["3.422. windows_process_extensions_async_pipes","library-features/windows-process-extensions-async-pipes",[C[813]]],["3.423. windows_process_extensions_force_quotes","library-features/windows-process-extensions-force-quotes",[C[813]]],["3.424. windows_process_extensions_main_thread_handle","library-features/windows-process-extensions-main-thread-handle",[C[813]]],["3.425. windows_process_extensions_raw_attribute","library-features/windows-process-extensions-raw-attribute",[C[813]]],["3.426. windows_process_extensions_show_window","library-features/windows-process-extensions-show-window",[C[813]]],["3.427. windows_stdio","library-features/windows-stdio",[C[813]]],["3.428. wrapping_int_impl","library-features/wrapping-int-impl",[C[813]]],["3.429. wrapping_next_power_of_two","library-features/wrapping-next-power-of-two",[C[813]]],["3.430. write_all_vectored","library-features/write-all-vectored",[C[813]]],["3.431. yeet_desugar_details","library-features/yeet-desugar-details",[C[813]]]]},{"name":"Rust bindgen User Guide","url":"https://rust-lang.github.io/rust-bindgen/","pages":[[C[53],C[48],N],["2. Requirements","requirements",N],[C[814],"library-usage",N],[C[815],"tutorial-0",[C[814]]],["3.1.1. Add bindgen as a Build Dependency","tutorial-1",[C[814],C[815]]],["3.1.2. Create a wrapper.h Header","tutorial-2",[C[814],C[815]]],["3.1.3. Create a build.rs File","tutorial-3",[C[814],C[815]]],["3.1.4. Include the Generated Bindings in src/lib.rs","tutorial-4",[C[814],C[815]]],["3.1.5. Write a Sanity Test","tutorial-5",[C[814],C[815]]],["3.1.6. Publish Your Crate!","tutorial-6",[C[814],C[815]]],["3.2. Bindings for non-system libraries","non-system-libraries",[C[814]]],["4. Command Line Usage","command-line-usage",N],[C[816],"customizing-generated-bindings",N],["5.1. Allowlisting","allowlisting",[C[816]]],["5.2. Blocklisting","blocklisting",[C[816]]],["5.3. Treating a Type as an Opaque Blob of Bytes","opaque",[C[816]]],["5.4. Replacing One Type with Another","replacing-types",[C[816]]],["5.5. Preventing the Derivation of Copy and Clone","nocopy",[C[816]]],["5.6. Preventing the Derivation of Debug","nodebug",[C[816]]],["5.7. Preventing the Derivation of Default","nodefault",[C[816]]],["5.8. Annotating types with #[must-use]","must-use-types",[C[816]]],["5.9. Field visibility",C[903],[C[816]]],["5.10. Code formatting","code-formatting",[C[816]]],["6. Generating Bindings to C++","cpp",N],["7. Generating Bindings to Objective-c","objc",N],["8. Using Unions","using-unions",N],["9. Using Bitfields","using-bitfields",N],["10. Using Flexible Array Members","using-fam",N],["11. FAQ","faq",N]]},{"name":"The wasm-bindgen Guide","url":"https://rustwasm.github.io/docs/wasm-bindgen/","pages":[[C[21],C[48],N],[C[817],"examples/index",N],["1.1. Hello, World!","examples/hello-world",[C[817]]],["1.2. Using console.log","examples/console-log",[C[817]]],["1.3. Small Wasm files","examples/add",[C[817]]],["1.4. Without a Bundler","examples/without-a-bundler",[C[817]]],["1.5. Synchronous Instantiation","examples/synchronous-instantiation",[C[817]]],["1.6. Converting WebAssembly to JS","examples/wasm2js",[C[817]]],["1.7. Importing functions from JS","examples/import-js",[C[817]]],["1.8. Working with char","examples/char",[C[817]]],["1.9. js-sys: WebAssembly in WebAssembly","examples/wasm-in-wasm",[C[817]]],["1.10. web-sys: DOM hello world","examples/dom",[C[817]]],["1.11. web-sys: Closures","examples/closures",[C[817]]],["1.12. web-sys: performance.now","examples/performance",[C[817]]],["1.13. web-sys: using fetch","examples/fetch",[C[817]]],["1.14. web-sys: Weather report","examples/weather_report",[C[817]]],["1.15. web-sys: canvas hello world","examples/2d-canvas",[C[817]]],["1.16. web-sys: canvas Julia set","examples/julia",[C[817]]],["1.17. web-sys: WebAudio","examples/web-audio",[C[817]]],["1.18. web-sys: WebGL","examples/webgl",[C[817]]],["1.19. web-sys: WebSockets","examples/websockets",[C[817]]],["1.20. web-sys: WebRTC DataChannel","examples/webrtc_datachannel",[C[817]]],["1.21. web-sys: requestAnimationFrame","examples/request-animation-frame",[C[817]]],["1.22. web-sys: A Simple Paint Program","examples/paint",[C[817]]],["1.23. web-sys: Wasm in Web Worker","examples/wasm-in-web-worker",[C[817]]],["1.24. Parallel Raytracing","examples/raytrace",[C[817]]],["1.25. Wasm Audio Worklet","examples/wasm-audio-worklet",[C[817]]],["1.26. web-sys: A TODO MVC App","examples/todomvc",[C[817]]],[C[818],C[51],N],["2.1. Deployment","reference/deployment",[C[818]]],["2.2. JS snippets","reference/js-snippets",[C[818]]],["2.3. Static JS Objects","reference/static-js-objects",[C[818]]],["2.4. Passing Rust Closures to JS","reference/passing-rust-closures-to-js",[C[818]]],["2.5. Receiving JS Closures in Rust","reference/receiving-js-closures-in-rust",[C[818]]],["2.6. Promises and Futures","reference/js-promises-and-rust-futures",[C[818]]],["2.7. Iterating over JS Values","reference/iterating-over-js-values",[C[818]]],["2.8. Arbitrary Data with Serde","reference/arbitrary-data-with-serde",[C[818]]],["2.9. Accessing Properties of Untyped JS Values","reference/accessing-properties-of-untyped-js-values",[C[818]]],["2.10. Working with Duck-Typed Interfaces","reference/working-with-duck-typed-interfaces",[C[818]]],["2.11. Command Line Interface","reference/cli",[C[818]]],["2.12. Optimizing for Size","reference/optimize-size",[C[818]]],["2.13. Supported Rust Targets","reference/rust-targets",[C[818]]],["2.14. Supported Browsers","reference/browser-support",[C[818]]],["2.15. Support for Weak References","reference/weak-references",[C[818]]],["2.16. Support for Reference Types","reference/reference-types",[C[818]]],[C[819],"reference/types",[C[818]]],["2.17.1. Imported JavaScript Types","reference/types/imported-js-types",[C[818],C[819]]],["2.17.2. Exported Rust Types","reference/types/exported-rust-types",[C[818],C[819]]],["2.17.3. JsValue","reference/types/jsvalue",[C[818],C[819]]],["2.17.4. Box<[T]> and Vec","reference/types/boxed-slices",[C[818],C[819]]],["2.17.5. *const T and *mut T","reference/types/pointers",[C[818],C[819]]],["2.17.6. NonNull","reference/types/non-null",[C[818],C[819]]],["2.17.7. Numbers","reference/types/numbers",[C[818],C[819]]],["2.17.8. bool","reference/types/bool",[C[818],C[819]]],["2.17.9. char","reference/types/char",[C[818],C[819]]],["2.17.10. str","reference/types/str",[C[818],C[819]]],["2.17.11. String","reference/types/string",[C[818],C[819]]],["2.17.12. Number Slices","reference/types/number-slices",[C[818],C[819]]],["2.17.13. Boxed Number Slices","reference/types/boxed-number-slices",[C[818],C[819]]],["2.17.14. Result","reference/types/result",[C[818],C[819]]],[C[820],"reference/attributes/index",[C[818]]],[C[821],"reference/attributes/on-js-imports/index",[C[818],C[820]]],["2.18.1.1. catch","reference/attributes/on-js-imports/catch",[C[818],C[820],C[821]]],["2.18.1.2. constructor","reference/attributes/on-js-imports/constructor",[C[818],C[820],C[821]]],["2.18.1.3. extends","reference/attributes/on-js-imports/extends",[C[818],C[820],C[821]]],["2.18.1.4. getter and setter","reference/attributes/on-js-imports/getter-and-setter",[C[818],C[820],C[821]]],["2.18.1.5. final","reference/attributes/on-js-imports/final",[C[818],C[820],C[821]]],["2.18.1.6. indexing_getter, indexing_setter, and indexing_deleter","reference/attributes/on-js-imports/indexing-getter-setter-deleter",[C[818],C[820],C[821]]],["2.18.1.7. js_class = \"Blah\"","reference/attributes/on-js-imports/js_class",[C[818],C[820],C[821]]],["2.18.1.8. js_name","reference/attributes/on-js-imports/js_name",[C[818],C[820],C[821]]],["2.18.1.9. js_namespace","reference/attributes/on-js-imports/js_namespace",[C[818],C[820],C[821]]],["2.18.1.10. method","reference/attributes/on-js-imports/method",[C[818],C[820],C[821]]],["2.18.1.11. module = \"blah\"","reference/attributes/on-js-imports/module",[C[818],C[820],C[821]]],["2.18.1.12. raw_module = \"blah\"","reference/attributes/on-js-imports/raw_module",[C[818],C[820],C[821]]],["2.18.1.13. no_deref","reference/attributes/on-js-imports/no_deref",[C[818],C[820],C[821]]],["2.18.1.14. static_method_of = Blah","reference/attributes/on-js-imports/static_method_of",[C[818],C[820],C[821]]],["2.18.1.15. structural","reference/attributes/on-js-imports/structural",[C[818],C[820],C[821]]],["2.18.1.16. typescript_type","reference/attributes/on-js-imports/typescript_type",[C[818],C[820],C[821]]],["2.18.1.17. variadic","reference/attributes/on-js-imports/variadic",[C[818],C[820],C[821]]],["2.18.1.18. vendor_prefix","reference/attributes/on-js-imports/vendor_prefix",[C[818],C[820],C[821]]],[C[822],"reference/attributes/on-rust-exports/index",[C[818],C[820]]],["2.18.2.1. constructor","reference/attributes/on-rust-exports/constructor",[C[818],C[820],C[822]]],["2.18.2.2. js_name = Blah","reference/attributes/on-rust-exports/js_name",[C[818],C[820],C[822]]],["2.18.2.3. js_class = Blah","reference/attributes/on-rust-exports/js_class",[C[818],C[820],C[822]]],["2.18.2.4. readonly","reference/attributes/on-rust-exports/readonly",[C[818],C[820],C[822]]],["2.18.2.5. skip","reference/attributes/on-rust-exports/skip",[C[818],C[820],C[822]]],["2.18.2.6. skip_jsdoc","reference/attributes/on-rust-exports/skip_jsdoc",[C[818],C[820],C[822]]],["2.18.2.7. start","reference/attributes/on-rust-exports/start",[C[818],C[820],C[822]]],["2.18.2.8. main","reference/attributes/on-rust-exports/main",[C[818],C[820],C[822]]],["2.18.2.9. typescript_custom_section","reference/attributes/on-rust-exports/typescript_custom_section",[C[818],C[820],C[822]]],["2.18.2.10. getter and setter","reference/attributes/on-rust-exports/getter-and-setter",[C[818],C[820],C[822]]],["2.18.2.11. inspectable","reference/attributes/on-rust-exports/inspectable",[C[818],C[820],C[822]]],["2.18.2.12. skip_typescript","reference/attributes/on-rust-exports/skip_typescript",[C[818],C[820],C[822]]],["2.18.2.13. getter_with_clone","reference/attributes/on-rust-exports/getter_with_clone",[C[818],C[820],C[822]]],[C[823],"web-sys/index",N],["3.1. Using web-sys","web-sys/using-web-sys",[C[823]]],["3.2. Cargo Features","web-sys/cargo-features",[C[823]]],["3.3. Function Overloads","web-sys/function-overloads",[C[823]]],["3.4. Type Translations","web-sys/type-translations",[C[823]]],["3.5. Inheritance","web-sys/inheritance",[C[823]]],["3.6. Unstable APIs","web-sys/unstable-apis",[C[823]]],[C[824],"wasm-bindgen-test/index",N],["4.1. Usage","wasm-bindgen-test/usage",[C[824]]],["4.2. Writing Asynchronous Tests","wasm-bindgen-test/asynchronous-tests",[C[824]]],["4.3. Testing in Headless Browsers","wasm-bindgen-test/browsers",[C[824]]],["4.4. Continuous Integration","wasm-bindgen-test/continuous-integration",[C[824]]],["4.5. Coverage (Experimental)","wasm-bindgen-test/coverage",[C[824]]],[C[825],"contributing/index",N],["5.1. Testing","contributing/testing",[C[825]]],[C[826],"contributing/design/index",[C[825]]],["5.2.1. JS Objects in Rust","contributing/design/js-objects-in-rust",[C[825],C[826]]],["5.2.2. Exporting a function to JS","contributing/design/exporting-rust",[C[825],C[826]]],["5.2.3. Exporting a struct to JS","contributing/design/exporting-rust-struct",[C[825],C[826]]],["5.2.4. Importing a function from JS","contributing/design/importing-js",[C[825],C[826]]],["5.2.5. Importing a class from JS","contributing/design/importing-js-struct",[C[825],C[826]]],["5.2.6. Rust Type conversions","contributing/design/rust-type-conversions",[C[825],C[826]]],["5.2.7. Types in wasm-bindgen","contributing/design/describe",[C[825],C[826]]],[C[827],"contributing/js-sys/index",[C[825]]],["5.3.1. Testing","contributing/js-sys/testing",[C[825],C[827]]],["5.3.2. Adding More APIs","contributing/js-sys/adding-more-apis",[C[825],C[827]]],[C[828],"contributing/web-sys/index",[C[825]]],["5.4.1. Overview","contributing/web-sys/overview",[C[825],C[828]]],["5.4.2. Testing","contributing/web-sys/testing",[C[825],C[828]]],["5.4.3. Logging","contributing/web-sys/logging",[C[825],C[828]]],["5.4.4. Supporting More Web APIs","contributing/web-sys/supporting-more-web-apis",[C[825],C[828]]],["5.5. Publishing","contributing/publishing",[C[825]]],["5.6. Team","contributing/team",[C[825]]]]},{"name":"Rust API Guidelines","url":"https://rust-lang.github.io/api-guidelines/","pages":[["About","about",N],["Checklist","checklist",N],["1. Naming","naming",N],["2. Interoperability","interoperability",N],[C[781],"macros",N],["4. Documentation",C[904],N],["5. Predictability","predictability",N],["6. Flexibility","flexibility",N],["7. Type safety","type-safety",N],["8. Dependability","dependability",N],["9. Debuggability","debuggability",N],["10. Future proofing","future-proofing",N],["11. Necessities","necessities",N],["External links","external-links",N]]},{"name":"Rust Fuzz Book","url":"https://rust-fuzz.github.io/book/","pages":[[C[21],C[48],N],[C[829],"cargo-fuzz",N],["1.1. Setup","cargo-fuzz/setup",[C[829]]],["1.2. Tutorial","cargo-fuzz/tutorial",[C[829]]],["1.3. Guide","cargo-fuzz/guide",[C[829]]],["1.4. Structure-Aware Fuzzing","cargo-fuzz/structure-aware-fuzzing",[C[829]]],["1.5. Coverage","cargo-fuzz/coverage",[C[829]]],["1.6. Targets","cargo-fuzz/targets",[C[829]]],[C[830],"afl",N],["2.1. Setup","afl/setup",[C[830]]],["2.2. Tutorial","afl/tutorial",[C[830]]],["2.3. Installing from source","afl/installing-from-source",[C[830]]],["3. Trophy case","trophy-case",N]]},{"name":"Rust Forge Book","url":"https://forge.rust-lang.org/","pages":[["Overview","index",N],[C[831],"platforms/index",N],["Twitter","platforms/twitter",[C[831]]],["Discord","platforms/discord",[C[831]]],["Email","platforms/email",[C[831]]],["GitHub","platforms/github",[C[831]]],["Zulip","platforms/zulip",[C[831]]],[C[840],"platforms/zulip/moderation",[C[831],"Zulip"]],["Blogs","platforms/blogs",[C[831]]],["Calendars","platforms/calendars",[C[831]]],[C[832],"triagebot/index",N],["Agenda Generator","triagebot/agenda",[C[832]]],["Issue Assignment","triagebot/issue-assignment",[C[832]]],["PR Assignment","triagebot/pr-assignment",[C[832]]],["Tracking PR assignment","triagebot/pr-assignment-tracking",[C[832]]],["Autolabels","triagebot/autolabels",[C[832]]],["Close","triagebot/close",[C[832]]],["Documentation Updates","triagebot/doc-updates",[C[832]]],["GitHub Releases","triagebot/github-releases",[C[832]]],["Glacier","triagebot/glacier",[C[832]]],["Issue Transfer","triagebot/transfer",[C[832]]],["Labeling","triagebot/labeling",[C[832]]],["Major Changes","triagebot/major-changes",[C[832]]],["Mentions","triagebot/mentions",[C[832]]],["No Merge Policy","triagebot/no-merge",[C[832]]],["Nominate","triagebot/nominate",[C[832]]],["Note","triagebot/note",[C[832]]],["Notifications","triagebot/notifications",[C[832]]],["Pinging","triagebot/pinging",[C[832]]],["Requesting Prioritization","triagebot/requesting-prioritization",[C[832]]],["Review Changes Requested","triagebot/review-submitted",[C[832]]],["Review Requested","triagebot/review-requested",[C[832]]],["Rustc Commit Tracking","triagebot/rustc-commit-list",[C[832]]],["Shortcuts","triagebot/shortcuts",[C[832]]],["Triagebot Dashboard","triagebot/triage-dashboard",[C[832]]],["Zulip Meeting Management","triagebot/zulip-meeting",[C[832]]],["Zulip Notifications","triagebot/zulip-notifications",[C[832]]],[C[833],"community/index",N],["State of Rust Survey FAQ","community/survey-faq",[C[833]]],[C[834],"compiler/index",N],[C[835],"compiler/cross-compilation/index",[C[834]]],["Windows","compiler/cross-compilation/windows",[C[834],C[835]]],["Cross-team Collaboration","compiler/cross-team-collaboration",[C[834]]],["Review policies","compiler/reviews",[C[834]]],["So you want to add a new option to rustc?","compiler/new_option",[C[834]]],["Major Change Proposals","compiler/mcp",[C[834]]],["Membership","compiler/membership",[C[834]]],[C[836],"compiler/prioritization",[C[834]]],["Procedure","compiler/prioritization/procedure",[C[834],C[836]]],["Priority Levels","compiler/prioritization/priority-levels",[C[834],C[836]]],["Notification groups","compiler/notification-groups",[C[834]]],["Triage Meeting","compiler/triage-meeting",[C[834]]],[C[837],"compiler/steering-meeting",[C[834]]],["Submitting a proposal","compiler/steering-meeting/submit",[C[834],C[837]]],["How to run the planning meeting","compiler/steering-meeting/how-to-run-planning",[C[834],C[837]]],["How to run a design meeting","compiler/steering-meeting/how-to-run-design",[C[834],C[837]]],[C[838],"crates-io/index",N],["Crate removal","crates-io/crate-removal",[C[838]]],["Database maintenance","crates-io/db-maintenance",[C[838]]],["docs.rs","docs-rs/index",N],["Adding dependencies to the build environment","docs-rs/add-dependencies",["docs.rs"]],["Self-hosting a docs.rs instance","docs-rs/self-hosting",["docs.rs"]],["Maintenance procedures","docs-rs/maintenance",["docs.rs"]],[C[839],"governance/index",N],["Leadership Council","governance/council",[C[839]]],[C[840],"governance/moderation",[C[839]]],[C[842],"policies/index",N],["Crate ownership policy","policies/crate-ownership",[C[842]]],[C[841],"infra/index",N],["Other Installation Methods","infra/other-installation-methods",[C[841]]],["Archive of Rust Stable Standalone Installers","infra/archive-stable-version-installers",[C[841]]],["Release Channel Layout","infra/channel-layout",[C[841]]],["Service Infrastructure","infra/service-infrastructure",[C[841]]],["Team Maintenance","infra/team-maintenance",[C[841]]],["The Toolstate System","infra/toolstate",[C[841]]],[C[842],"infra/policies/index",[C[841]]],["Broken nightlies","infra/policies/broken-nightlies",[C[841],C[842]]],[C[843],"infra/guidelines/index",[C[841]]],["Static websites","infra/guidelines/static-websites",[C[841],C[843]]],[C[844],"infra/docs/index",[C[841]]],["AWS access for team members","infra/docs/aws-access",[C[841],C[844]]],["AWS access management","infra/docs/aws-access-management",[C[841],C[844]]],["AWS regions","infra/docs/aws-regions",[C[841],C[844]]],["Bastion server","infra/docs/bastion",[C[841],C[844]]],["Bors","infra/docs/bors",[C[841],C[844]]],["CDN","infra/docs/cdn",[C[841],C[844]]],["Crater agents","infra/docs/crater-agents",[C[841],C[844]]],["Custom GitHub Actions runners","infra/docs/gha-self-hosted",[C[841],C[844]]],["Dev Desktops","infra/docs/dev-desktop",[C[841],C[844]]],["GitHub App for dev-desktops","infra/docs/dev-desktop-github-app",[C[841],C[844]]],["Discord moderation bot","infra/docs/discord-mods-bot",[C[841],C[844]]],["Domain names and DNS","infra/docs/dns",[C[841],C[844]]],["docs.rs","infra/docs/docs-rs",[C[841],C[844]]],["ECS services management","infra/docs/ecs-services",[C[841],C[844]]],["Monitoring","infra/docs/monitoring",[C[841],C[844]]],["rust-bots server","infra/docs/rust-bots",[C[841],C[844]]],["rust-lang/rust CI","infra/docs/rustc-ci",[C[841],C[844]]],["Sentry","infra/docs/sentry",[C[841],C[844]]],[C[845],"lang/index",N],["RFC Merge Procedure","lang/rfc-merge-procedure",[C[845]]],["Triage Meeting Procedure","lang/triage-meeting-procedure",[C[845]]],["Libs","libs/index",N],["Maintaining the standard library","libs/maintaining-std",["Libs"]],[C[846],"release/index",N],["Backporting","release/backporting",[C[846]]],["Preparing Release Notes","release/release-notes",[C[846]]],["Release Process","release/process",[C[846]]],["Rollup Procedure","release/rollups",[C[846]]],["Triage Procedure","release/triage-procedure",[C[846]]],["Issue Triaging","release/issue-triaging",[C[846]]],["Triaging Crater Runs","release/crater",[C[846]]],["Edition Releases","editions/edition-releases",N],["Archive","archive/index",N],["Friends of the Tree","archive/fott",["Archive"]],["Release History","archive/release-history",["Archive"]]]},{"name":"Rust Chalk Book","url":"https://rust-lang.github.io/chalk/book/","pages":[[C[847],"what_is_chalk",N],["1.1. Walkthrough","what_is_chalk/walkthrough",[C[847]]],["1.2. Crates","what_is_chalk/crates",[C[847]]],["1.3. REPL","what_is_chalk/repl",[C[847]]],["2. Contribution guide","contribution_guide",N],[C[848],"types",N],["3.1. The Interner","types/role_of_interner",[C[848]]],[C[849],"types/rust_types",[C[848]]],["3.2.1. Alias types","types/rust_types/alias",[C[848],C[849]]],["3.2.2. Application types","types/rust_types/application_ty",[C[848],C[849]]],["3.3. Rust lifetimes","types/rust_lifetimes",[C[848]]],[C[850],"types/operations",[C[848]]],["3.4.1. TypeFoldable and the TypeFolder trait","types/operations/fold",[C[848],C[850]]],[C[851],"clauses",N],["4.1. Goals and clauses","clauses/goals_and_clauses",[C[851]]],["4.2. Type equality and unification","clauses/type_equality",[C[851]]],["4.3. Implied bounds","clauses/implied_bounds",[C[851]]],["4.4. Lowering rules","clauses/lowering_rules",[C[851]]],["4.5. Opaque types (impl Trait)","clauses/opaque_types",[C[851]]],["4.6. Well known traits","clauses/well_known_traits",[C[851]]],["4.7. Well-formedness checking","clauses/wf",[C[851]]],["4.8. Coherence","clauses/coherence",[C[851]]],[C[852],"canonical_queries",N],["5.1. Canonicalization","canonical_queries/canonicalization",[C[852]]],[C[853],"engine",N],["6.1. Major concepts","engine/major_concepts",[C[853]]],[C[854],"engine/logic",[C[853]]],["6.2.1. Coinduction","engine/logic/coinduction",[C[853],C[854]]],["6.3. SLG Solver","engine/slg",[C[853]]],[C[855],"recursive",N],["7.1. The stack","recursive/stack",[C[855]]],["7.2. Inductive cycles","recursive/inductive_cycles",[C[855]]],["7.3. The search graph and caching","recursive/search_graph",[C[855]]],["7.4. Coinduction","recursive/coinduction",[C[855]]],["Appendix A: Glossary and terminology",C[864],N],["Appendix B: Bibliography","bibliography",N],["Appendix C: Incomplete chapters","todo",N],["Appendix D: Publishing Chalk","publishing",N]]},{"name":"Rust Performance Book","url":"https://nnethercote.github.io/perf-book/","pages":[["Title Page",C[856],N],[C[53],C[48],N],["2. Benchmarking","benchmarking",N],["3. Build Configuration","build-configuration",N],["4. Linting","linting",N],["5. Profiling",C[857],N],["6. Inlining","inlining",N],["7. Hashing","hashing",N],["8. Heap Allocations","heap-allocations",N],["9. Type Sizes","type-sizes",N],["10. Standard Library Types","standard-library-types",N],["11. Iterators",C[898],N],["12. Bounds Checks","bounds-checks",N],["13. I/O","io",N],["14. Logging and Debugging","logging-and-debugging",N],["15. Wrapper Types","wrapper-types",N],["16. Machine Code","machine-code",N],["17. Parallelism","parallelism",N],["18. General Tips","general-tips",N],["19. Compile Times","compile-times",N]]},{"name":"mdBook Documentation","url":"https://rust-lang.github.io/mdBook/","pages":[[C[21],"index",N],["1. Installation","guide/installation",N],["2. Reading Books","guide/reading",N],["3. Creating a Book","guide/creating",N],[C[858],"cli/index",N],["4.1. init","cli/init",[C[858]]],[C[859],"cli/build",[C[858]]],["4.3. watch","cli/watch",[C[858]]],["4.4. serve","cli/serve",[C[858]]],["4.5. test","cli/test",[C[858]]],["4.6. clean","cli/clean",[C[858]]],["4.7. completions","cli/completions",[C[858]]],[C[860],"format/index",N],["5.1. SUMMARY.md","format/summary",[C[860]]],[C[861],"format/configuration/index",[C[860]]],["5.2.1. General","format/configuration/general",[C[860],C[861]]],["5.2.2. Preprocessors","format/configuration/preprocessors",[C[860],C[861]]],["5.2.3. Renderers","format/configuration/renderers",[C[860],C[861]]],["5.2.4. Environment Variables","format/configuration/environment-variables",[C[860],C[861]]],[C[862],"format/theme/index",[C[860]]],["5.3.1. index.hbs","format/theme/index-hbs",[C[860],C[862]]],["5.3.2. Syntax highlighting","format/theme/syntax-highlighting",[C[860],C[862]]],["5.3.3. Editor","format/theme/editor",[C[860],C[862]]],["5.4. MathJax Support","format/mathjax",[C[860]]],["5.5. mdBook-specific features","format/mdbook",[C[860]]],["5.6. Markdown","format/markdown",[C[860]]],["6. Continuous Integration","continuous-integration",N],[C[863],"for_developers/index",N],["7.1. Preprocessors","for_developers/preprocessors",[C[863]]],["7.2. Alternative Backends","for_developers/backends",[C[863]]],["Contributors","misc/contributors",N]]},{"name":"Rust's Unsafe Code Guidelines Reference","url":"https://rust-lang.github.io/unsafe-code-guidelines/","pages":[[C[53],C[48],N],["2. Glossary",C[864],N],[C[865],"layout",N],["3.1. Structs and tuples","layout/structs-and-tuples",[C[865]]],["3.2. Scalars","layout/scalars",[C[865]]],["3.3. Enums","layout/enums",[C[865]]],["3.4. Unions","layout/unions",[C[865]]],["3.5. Pointers","layout/pointers",[C[865]]],["3.6. Function pointers","layout/function-pointers",[C[865]]],["3.7. Arrays and Slices","layout/arrays-and-slices",[C[865]]],["3.8. Packed SIMD vectors","layout/packed-simd-vectors",[C[865]]],[C[866],"validity",N],["4.1. Unions","validity/unions",[C[866]]],["4.2. Function Pointers","validity/function-pointers",[C[866]]],[C[867],"optimizations",N],["5.1. Return value optimization","optimizations/return_value_optimization",[C[867]]]]},{"name":"Rust Design Patterns","url":"https://rust-unofficial.github.io/patterns/","pages":[[C[53],"intro",N],["1.1. Translations","translations",[C[53]]],[C[868],"idioms/index",N],["2.1. Use borrowed types for arguments","idioms/coercion-arguments",[C[868]]],["2.2. Concatenating Strings with format!","idioms/concat-format",[C[868]]],["2.3. Constructor","idioms/ctor",[C[868]]],["2.4. The Default Trait","idioms/default",[C[868]]],["2.5. Collections Are Smart Pointers","idioms/deref",[C[868]]],["2.6. Finalisation in Destructors","idioms/dtor-finally",[C[868]]],["2.7. mem::{take(_), replace(_)}","idioms/mem-replace",[C[868]]],["2.8. On-Stack Dynamic Dispatch","idioms/on-stack-dyn-dispatch",[C[868]]],[C[869],"idioms/ffi/intro",[C[868]]],["2.9.1. Idiomatic Errors","idioms/ffi/errors",[C[868],C[869]]],["2.9.2. Accepting Strings","idioms/ffi/accepting-strings",[C[868],C[869]]],["2.9.3. Passing Strings","idioms/ffi/passing-strings",[C[868],C[869]]],["2.10. Iterating over an Option","idioms/option-iter",[C[868]]],["2.11. Pass Variables to Closure","idioms/pass-var-to-closure",[C[868]]],["2.12. Privacy For Extensibility","idioms/priv-extend",[C[868]]],["2.13. Easy doc initialization","idioms/rustdoc-init",[C[868]]],["2.14. Temporary mutability","idioms/temporary-mutability",[C[868]]],["2.15. Return consumed arg on error","idioms/return-consumed-arg-on-error",[C[868]]],[C[870],"patterns/index",N],[C[871],"patterns/behavioural/intro",[C[870]]],["3.1.1. Command","patterns/behavioural/command",[C[870],C[871]]],["3.1.2. Interpreter","patterns/behavioural/interpreter",[C[870],C[871]]],["3.1.3. Newtype","patterns/behavioural/newtype",[C[870],C[871]]],["3.1.4. RAII Guards","patterns/behavioural/RAII",[C[870],C[871]]],["3.1.5. Strategy","patterns/behavioural/strategy",[C[870],C[871]]],["3.1.6. Visitor","patterns/behavioural/visitor",[C[870],C[871]]],[C[872],"patterns/creational/intro",[C[870]]],["3.2.1. Builder","patterns/creational/builder",[C[870],C[872]]],["3.2.2. Fold","patterns/creational/fold",[C[870],C[872]]],[C[873],"patterns/structural/intro",[C[870]]],["3.3.1. Compose Structs","patterns/structural/compose-structs",[C[870],C[873]]],["3.3.2. Prefer Small Crates","patterns/structural/small-crates",[C[870],C[873]]],["3.3.3. Contain unsafety in small modules","patterns/structural/unsafe-mods",[C[870],C[873]]],[C[874],"patterns/ffi/intro",[C[870]]],["3.4.1. Object-Based APIs","patterns/ffi/export",[C[870],C[874]]],["3.4.2. Type Consolidation into Wrappers","patterns/ffi/wrappers",[C[870],C[874]]],[C[875],"anti_patterns/index",N],["4.1. Clone to satisfy the borrow checker","anti_patterns/borrow_clone",[C[875]]],["4.2. #[deny(warnings)]","anti_patterns/deny-warnings",[C[875]]],["4.3. Deref Polymorphism","anti_patterns/deref",[C[875]]],[C[876],"functional/index",N],["5.1. Programming paradigms","functional/paradigms",[C[876]]],["5.2. Generics as Type Classes","functional/generics-type-classes",[C[876]]],["5.3. Functional Optics","functional/optics",[C[876]]],[C[877],"additional_resources/index",N],["6.1. Design principles","additional_resources/design-principles",[C[877]]]]},{"name":"Learn Rust With Entirely Too Many Linked Lists","url":"https://rust-unofficial.github.io/too-many-lists/","pages":[[C[53],"index",N],[C[878],"first",N],["2.1. Layout","first-layout",[C[878]]],["2.2. New","first-new",[C[878]]],["2.3. Ownership 101","first-ownership",[C[878]]],["2.4. Push","first-push",[C[878]]],["2.5. Pop","first-pop",[C[878]]],["2.6. Testing","first-test",[C[878]]],["2.7. Drop","first-drop",[C[878]]],["2.8. Final Code","first-final",[C[878]]],[C[879],"second",N],["3.1. Option","second-option",[C[879]]],["3.2. Generic","second-generic",[C[879]]],["3.3. Peek","second-peek",[C[879]]],["3.4. IntoIter","second-into-iter",[C[879]]],["3.5. Iter","second-iter",[C[879]]],["3.6. IterMut","second-iter-mut",[C[879]]],["3.7. Final Code","second-final",[C[879]]],[C[880],"third",N],["4.1. Layout","third-layout",[C[880]]],["4.2. Basics","third-basics",[C[880]]],["4.3. Drop","third-drop",[C[880]]],["4.4. Arc","third-arc",[C[880]]],["4.5. Final Code","third-final",[C[880]]],[C[881],"fourth",N],["5.1. Layout","fourth-layout",[C[881]]],["5.2. Building","fourth-building",[C[881]]],["5.3. Breaking","fourth-breaking",[C[881]]],["5.4. Peek","fourth-peek",[C[881]]],["5.5. Symmetric Cases","fourth-symmetry",[C[881]]],["5.6. Iteration","fourth-iteration",[C[881]]],["5.7. Final Code","fourth-final",[C[881]]],[C[882],"fifth",N],["6.1. Layout","fifth-layout",[C[882]]],["6.2. Unsafe","fifth-unsafe",[C[882]]],["6.3. Basics","fifth-basics",[C[882]]],["6.4. Miri","fifth-miri",[C[882]]],["6.5. Stacked Borrows","fifth-stacked-borrows",[C[882]]],["6.6. Testing Stacked Borrows","fifth-testing-stacked-borrows",[C[882]]],["6.7. Layout + Basics Redux","fifth-layout-basics-redux",[C[882]]],["6.8. Extras","fifth-extras",[C[882]]],["6.9. Final Code","fifth-final",[C[882]]],[C[883],"sixth",N],["7.1. Layout","sixth-layout",[C[883]]],["7.2. Variance and Subtyping","sixth-variance",[C[883]]],["7.3. Basics","sixth-basics",[C[883]]],["7.4. Panic Safety","sixth-panics",[C[883]]],["7.5. Boring Combinatorics","sixth-combinatorics",[C[883]]],["7.6. Filling In Random Bits","sixth-random-bits",[C[883]]],["7.7. Testing","sixth-testing",[C[883]]],["7.8. Send, Sync, and Compile Tests","sixth-send-sync",[C[883]]],["7.9. An Introduction To Cursors","sixth-cursors-intro",[C[883]]],["7.10. Implementing Cursors","sixth-cursors-impl",[C[883]]],["7.11. Testing Cursors","sixth-cursors-testing",[C[883]]],["7.12. Final Code","sixth-final",[C[883]]],[C[884],"infinity",N],["8.1. The Double Single","infinity-double-single",[C[884]]],["8.2. The Stack-Allocated Linked List","infinity-stack-allocated",[C[884]]]]},{"name":"The Little Book of Rust Macros","url":"https://veykril.github.io/tlborm/","pages":[[C[21],C[48],N],[C[885],"syntax-extensions",N],["1.1. Source Analysis","syntax-extensions/source-analysis",[C[885]]],["1.2. Macros in the Ast","syntax-extensions/ast",[C[885]]],["1.3. Expansion","syntax-extensions/expansion",[C[885]]],["1.4. Hygiene","syntax-extensions/hygiene",[C[885]]],["1.5. Debugging","syntax-extensions/debugging",[C[885]]],[C[886],"decl-macros",N],["2.1. A Methodical Introduction","decl-macros/macros-methodical",[C[886]]],["2.2. A Practical Introduction","decl-macros/macros-practical",[C[886]]],[C[887],"decl-macros/minutiae",[C[886]]],["2.3.1. Fragment Specifiers","decl-macros/minutiae/fragment-specifiers",[C[886],C[887]]],["2.3.2. Metavariables and Expansion Redux","decl-macros/minutiae/metavar-and-expansion",[C[886],C[887]]],["2.3.3. Metavariable Expressions","decl-macros/minutiae/metavar-expr",[C[886],C[887]]],["2.3.4. Hygiene","decl-macros/minutiae/hygiene",[C[886],C[887]]],["2.3.5. Non-Identifier Identifiers","decl-macros/minutiae/identifiers",[C[886],C[887]]],["2.3.6. Debugging","decl-macros/minutiae/debugging",[C[886],C[887]]],["2.3.7. Scoping","decl-macros/minutiae/scoping",[C[886],C[887]]],["2.3.8. Import and Export","decl-macros/minutiae/import-export",[C[886],C[887]]],[C[888],"decl-macros/patterns",[C[886]]],["2.4.1. Callbacks","decl-macros/patterns/callbacks",[C[886],C[888]]],["2.4.2. Incremental TT Munchers","decl-macros/patterns/tt-muncher",[C[886],C[888]]],["2.4.3. Internal Rules","decl-macros/patterns/internal-rules",[C[886],C[888]]],["2.4.4. Push-down Accumulation","decl-macros/patterns/push-down-acc",[C[886],C[888]]],["2.4.5. Repetition Replacement","decl-macros/patterns/repetition-replacement",[C[886],C[888]]],["2.4.6. TT Bundling","decl-macros/patterns/tt-bundling",[C[886],C[888]]],[C[889],"decl-macros/building-blocks",[C[886]]],["2.5.1. AST Coercion","decl-macros/building-blocks/ast-coercion",[C[886],C[889]]],[C[890],"decl-macros/building-blocks/counting",[C[886],C[889]]],["2.5.2.1. Abacus Counting","decl-macros/building-blocks/abacus-counting",[C[886],C[889],C[890]]],["2.5.3. Parsing Rust","decl-macros/building-blocks/parsing",[C[886],C[889]]],["2.6. Macros 2.0","decl-macros/macros2",[C[886]]],[C[891],"proc-macros",N],[C[892],"proc-macros/methodical",[C[891]]],["3.1.1. Function-like","proc-macros/methodical/function-like",[C[891],C[892]]],["3.1.2. Attribute","proc-macros/methodical/attr",[C[891],C[892]]],["3.1.3. Derive","proc-macros/methodical/derive",[C[891],C[892]]],["3.3. Third-Party Crates","proc-macros/third-party-crates",[C[891]]],["3.4. Hygiene and Spans","proc-macros/hygiene",[C[891]]],["Glossary",C[864],N]]},{"name":"Rust SIMD Performance Guide","url":"https://rust-lang.github.io/packed_simd/perf-guide/introduction.html","pages":[[C[21],C[48],N],[C[893],"float-math/fp",N],["1.1. Short-vector Math Library","float-math/svml",[C[893]]],["1.2. Approximate functions","float-math/approx",[C[893]]],["1.3. Fused multiply-accumulate","float-math/fma",[C[893]]],[C[894],"target-feature/features",N],["2.1. Using RUSTFLAGS","target-feature/rustflags",[C[894]]],["2.2. Using the target_feature attribute","target-feature/attribute",[C[894]]],["2.3. Interaction with inlining","target-feature/inlining",[C[894]]],["2.4. Detecting features at runtime","target-feature/runtime",[C[894]]],["3. Bounds checking","bound_checks",N],["4. Vertical and horizontal operations","vert-hor-ops",N],[C[895],"prof/profiling",N],["5.1. Profiling on Linux","prof/linux",[C[895]]],["5.2. Using machine code analyzers","prof/mca",[C[895]]]]},{"name":C[896],"url":"https://www.lurklurk.org/effective-rust/","pages":[[C[896],C[856],N],["Preface","preface",N],[C[897],"types",N],["1.1. Item 1: Use the type system to express your data structures","use-types",[C[897]]],["1.2. Item 2: Use the type system to express common behavior","use-types-2",[C[897]]],["1.3. Item 3: Prefer Option and Result transforms over explicit match expressions","transform",[C[897]]],["1.4. Item 4: Prefer idiomatic Error types","errors",[C[897]]],["1.5. Item 5: Understand type conversions","casts",[C[897]]],["1.6. Item 6: Embrace the newtype pattern","newtype",[C[897]]],["1.7. Item 7: Use builders for complex types","builders",[C[897]]],["1.8. Item 8: Familiarize yourself with reference and pointer types",C[795],[C[897]]],["1.9. Item 9: Consider using iterator transforms instead of explicit loops",C[898],[C[897]]],[C[899],"traits",N],["2.1. Item 10: Familiarize yourself with standard traits","std-traits",[C[899]]],["2.2. Item 11: Implement the Drop trait for RAII patterns","raii",[C[899]]],["2.3. Item 12: Understand the trade-offs between generics and trait objects","generics",[C[899]]],["2.4. Item 13: Use default implementations to minimize required trait methods","default-impl",[C[899]]],[C[901],"concepts",N],["3.1. Item 14: Understand lifetimes",C[900],[C[901]]],["3.2. Item 15: Understand the borrow checker","borrows",[C[901]]],["3.3. Item 16: Avoid writing unsafe code","unsafe",[C[901]]],["3.4. Item 17: Be wary of shared-state parallelism","deadlock",[C[901]]],["3.5. Item 18: Don't panic","panic",[C[901]]],["3.6. Item 19: Avoid reflection","reflection",[C[901]]],["3.7. Item 20: Avoid the temptation to over-optimize","optimize",[C[901]]],[C[902],"deps",N],["4.1. Item 21: Understand what semantic versioning promises","semver",[C[902]]],["4.2. Item 22: Minimize visibility",C[903],[C[902]]],["4.3. Item 23: Avoid wildcard imports","wildcard",[C[902]]],["4.4. Item 24: Re-export dependencies whose types appear in your API","re-export",[C[902]]],["4.5. Item 25: Manage your dependency graph","dep-graph",[C[902]]],["4.6. Item 26: Be wary of feature creep","features",[C[902]]],[C[905],"tooling",N],["5.1. Item 27: Document public interfaces",C[904],[C[905]]],["5.2. Item 28: Use macros judiciously","macros",[C[905]]],["5.3. Item 29: Listen to Clippy","clippy",[C[905]]],["5.4. Item 30: Write more than unit tests","testing",[C[905]]],["5.5. Item 31: Take advantage of the tooling ecosystem","use-tools",[C[905]]],["5.6. Item 32: Set up a continuous integration (CI) system","ci",[C[905]]],[C[906],"beyond-std",N],["6.1. Item 33: Consider making library code no_std compatible","no-std",[C[906]]],["6.2. Item 34: Control what crosses FFI boundaries","ffi",[C[906]]],["6.3. Item 35: Prefer bindgen to manual FFI mappings","bindgen",[C[906]]],["Afterword","afterword",N],["Index","indexing",N]]},{"name":"The Little Book of Rust Books","url":"https://lborb.github.io/book/","pages":[[C[21],C[856],N],["1. Official Rust Books","official",N],["2. Unofficial Rust Books","unofficial",N],["3. Rust Application Books","applications",N]]},{"name":"Rust for the Polyglot Programmer","url":"https://www.chiark.greenend.org.uk/~ianmdlvl/rust-polyglot/","pages":[["Contents","index",N],["1. Introduction and overview","intro",N],["2. Syntax","syntax",N],["3. Types and patterns","types",N],["4. Ownership, memory model",C[907],N],["5. Traits, methods","traits",N],["6. Safety, threadsafety","safety",N],["7. Error handling","errors",N],["8. Macros and metaprogramming","macros",N],["9. Async Rust","async",N],["10. FFI","ffi",N],["11. Documentation and testing","rustdoc",N],["12. Stability",C[908],N],["13. Cargo","cargo",N],["14. Libraries","libs",N],["15. Colophon","colophon",N]]},{"name":C[909],"url":"https://ruspiro.github.io/ruspiro-async-book/","pages":[[C[909],"cover",N],[C[53],"01-00-introduction",N],["1.1. Motivation","01-01-motivation",[C[53]]],[C[910],"02-00-terminology",N],["2.1. Future","02-01-future",[C[910]]],["2.2. Executor","02-02-executor",[C[910]]],["2.3. Async","02-03-async",[C[910]]],["2.4. Await","02-04-await",[C[910]]],[C[911],"03-00-build-the-runtime",N],["3.1. The Thought","03-01-the-thought",[C[911]]],["3.2. The First Naive Brain","03-02-first-brain",[C[911]]],["3.3. The Context and the Waker","03-03-context-and-waker",[C[911]]],["3.4. MPMC - Channel","03-04-mpmc-channel",[C[911]]],["3.5. The simple Brain","03-05-simple-brain",[C[911]]],["4. Proof the Runtime","04-00-proof-runtime",N],["5. Conclusion","05-00-conclusion",N],["The Author","author",N]]},{"name":"Roguelike Tutorial - In Rust","url":"https://bfnightly.bracketproductions.com/","pages":[[C[21],"chapter_0",N],["1. Building for the Web","webbuild",N],[C[912],"chapter_1",N],["2.1. Entities and Components","chapter_2",[C[912]]],["2.2. Walking A Map","chapter_3",[C[912]]],["2.3. A More Interesting Map","chapter_4",[C[912]]],["2.4. Field of View","chapter_5",[C[912]]],["2.5. Monsters","chapter_6",[C[912]]],["2.6. Dealing Damage","chapter_7",[C[912]]],["2.7. User Interface","chapter_8",[C[912]]],["2.8. Items and Inventory","chapter_9",[C[912]]],["2.9. Ranged Scrolls/Targeting","chapter_10",[C[912]]],["2.10. Saving and Loading","chapter_11",[C[912]]],["2.11. Delving Deeper","chapter_12",[C[912]]],["2.12. Difficulty","chapter_13",[C[912]]],["2.13. Equipment","chapter_14",[C[912]]],[C[913],"chapter_15",N],["3.1. Nice Walls with Bitsets","chapter_16",[C[913]]],["3.2. Bloodstains","chapter_17",[C[913]]],["3.3. Particle Effects","chapter_18",[C[913]]],["3.4. Hunger Clock","chapter_19",[C[913]]],["3.5. Magic Mapping","chapter_20",[C[913]]],["3.6. REX Paint Menu","chapter_21",[C[913]]],["3.7. Simple Traps","chapter_22",[C[913]]],[C[914],"chapter23-prefix",N],["4.1. Refactor Map Building","chapter_23",[C[914]]],["4.2. Map Building Test Harness","chapter_24",[C[914]]],["4.3. BSP Room Dungeons","chapter_25",[C[914]]],["4.4. BSP Interior Design","chapter_26",[C[914]]],["4.5. Cellular Automata Maps","chapter_27",[C[914]]],["4.6. Drunkard's Walk Maps","chapter_28",[C[914]]],["4.7. Mazes and Labyrinths","chapter_29",[C[914]]],["4.8. Diffusion-limited aggregation maps","chapter_30",[C[914]]],["4.9. Add symmetry and brushes to the library","chapter_31",[C[914]]],["4.10. Voronoi Hive Maps","chapter_32",[C[914]]],["4.11. Wave Function Collapse","chapter_33",[C[914]]],["4.12. Prefabs & Sectionals","chapter_34",[C[914]]],["4.13. Room Vaults","chapter_35",[C[914]]],["4.14. Layering/Builder Chaining","chapter_36",[C[914]]],["4.15. Fun With Layers","chapter_37",[C[914]]],["4.16. Room Builders","chapter_38",[C[914]]],["4.17. Better Corridors","chapter_39",[C[914]]],["4.18. Doors","chapter_40",[C[914]]],["4.19. Decouple map size from screen size","chapter_41",[C[914]]],["4.20. Section 3 Conclusion","chapter_42",[C[914]]],[C[915],"chapter_43",N],["5.1. Design Document","chapter_44",[C[915]]],["5.2. Raw Files, Data-Driven Design","chapter_45",[C[915]]],["5.3. Data-Driven Spawn Tables","chapter_46",[C[915]]],["5.4. Making the town","chapter_47",[C[915]]],["5.5. Populating the town","chapter_48",[C[915]]],["5.6. Living bystanders","chapter_49",[C[915]]],["5.7. Game Stats","chapter_50",[C[915]]],["5.8. Equipment","chapter_51",[C[915]]],["5.9. User Interface","chapter_52",[C[915]]],["5.10. Into the Woods!","chapter_53",[C[915]]],["5.11. XP","chapter_54",[C[915]]],["5.12. Backtracking","chapter_55",[C[915]]],["5.13. Into the caverns","chapter_56",[C[915]]],["5.14. Better AI","chapter_57",[C[915]]],["5.15. Spatial Indexing Revisited","chapter_57a",[C[915]]],["5.16. Item Stats and Vendors","chapter_58",[C[915]]],["5.17. Deep caverns","chapter_59",[C[915]]],["5.18. Cavern to Dwarf Fort","chapter_60",[C[915]]],["5.19. Town Portals","chapter_61",[C[915]]],["5.20. Magic Items","chapter_62",[C[915]]],["5.21. Effects","chapter_63",[C[915]]],["5.22. Cursed Items","chapter_64",[C[915]]],["5.23. Even More Items","chapter_65",[C[915]]],["5.24. Magic Spells","chapter_66",[C[915]]],["5.25. Enter the Dragon","chapter_67",[C[915]]],["5.26. Mushrooms","chapter_68",[C[915]]],["5.27. More Shrooms","chapter_69",[C[915]]],["5.28. Ranged Combat","chapter_70",[C[915]]],["5.29. Logging","chapter_71",[C[915]]],["5.30. Text Layers","chapter_72",[C[915]]],["5.31. Systems/Dispatch","chapter_73",[C[915]]],["5.32. Dark Elf City 1","chapter_74",[C[915]]],["6. Contributors","contributors",N],["7. Licensing","license",N]]},{"name":"High Assurance Rust Developing Secure and Robust Software","url":"https://highassurance.rs/","pages":[["High Assurance Rust","landing",N],["Frequently Asked Questions (FAQ)","faq",N],["Engage with this Book!","engage",N],["Sponsor Call for Proposals (CFP)","cfp",N],["Download","download",N],["Changelog","changelog",N],["License","license",N],[C[53],"chp1/_index",N],["1.1. Why this book?","chp1/why_this_book",[C[53]]],["1.2. How is this book structured?","chp1/how_is_this_book_structured",[C[53]]],["1.3. Hands-on Learning","chp1/challenges",[C[53]]],["1.4. About the Team","chp1/about_the_team",[C[53]]],["1.5. Warmup: Environment Setup","chp1/_hands_on",[C[53]]],[C[916],"chp2/_index",N],["2.1. Static vs. Dynamic Tools","chp2/static_vs_dynamic",[C[916]]],["2.2. Static Assurance (1/2)","chp2/static_assurance_1",[C[916]]],["2.3. Static Assurance (2/2)","chp2/static_assurance_2",[C[916]]],["2.4. Dynamic Assurance (1/3)","chp2/dynamic_assurance_1",[C[916]]],["2.5. Dynamic Assurance (2/3)","chp2/dynamic_assurance_2",[C[916]]],["2.6. Dynamic Assurance (3/3)","chp2/dynamic_assurance_3",[C[916]]],["2.7. Limitations and Threat Modeling","chp2/limits",[C[916]]],["2.8. DIY CLI Encryption Tool","chp2/cli",[C[916]]],["2.9. Operational Assurance (1/2)","chp2/operational_assurance_1",[C[916]]],["2.10. Operational Assurance (2/2)","chp2/operational_assurance_2",[C[916]]],["2.11. Challenge: Extend the CLI Tool","chp2/_hands_on",[C[916]]],[C[917],"chp3/_index",N],["3.1. On Undefined Behavior","chp3/undef",[C[917]]],["3.2. Rust: Low-Level Data (1/6)","chp3/rust_1_low_data_rep",[C[917]]],["3.3. Rust: High-Level Data (2/6)","chp3/rust_2_high_data_rep",[C[917]]],["3.4. Rust: Control Flow (3/6)","chp3/rust_3_ctrl_flow",[C[917]]],["3.5. Rust: Ownership Principles (4/6)","chp3/rust_4_own_1",[C[917]]],["3.6. Rust: Ownership in Practice (5/6)","chp3/rust_5_own_2",[C[917]]],["3.7. Rust: Error Handling (6/6)","chp3/rust_6_error",[C[917]]],["3.8. The Module System","chp3/modules",[C[917]]],["3.9. Recommended Tooling","chp3/tooling",[C[917]]],["3.11. Challenge: Port a Program","chp3/_hands_on",[C[917]]],[C[918],"chp4/_index",N],["4.1. Software Perspective: CPU to Process","chp4/sw_stack_1",[C[918]]],["4.2. Assurance Perspective: Stack Safety","chp4/assure_stack_1",[C[918]]],["4.3. Attacker's Perspective: Breaking Safety (1/2)","chp4/attack_1",[C[918]]],["4.4. Attacker's Perspective: Unifying Theory (2/2)","chp4/attack_2",[C[918]]],["4.10. Rust's Memory Safety Guarantees (1/2)","chp4/safe_rust_PLACEHOLDER",[C[918]]],[C[919],"chp16_appendix/_index",N],["16.2. Inventory: Tools of the Trade","chp16_appendix/tools",[C[919]]],["16.3. Inventory: Recommended Reading","chp16_appendix/books",[C[919]]],["16.4. Inventory: Additional Resources","chp16_appendix/resources",[C[919]]],["16.5. Fundamentals: Stream Ciphers","chp16_appendix/crypto",[C[919]]],["16.6. Fundamentals: Type Systems","chp16_appendix/types",[C[919]]],["16.7. Fundamentals: Component-Based Design","chp16_appendix/components",[C[919]]],["16.8. Fundamentals: Memory Hierarchy","chp16_appendix/mem_hierarch",[C[919]]],["16.10. Theory: Inter-procedural CFGs","chp16_appendix/icfg",[C[919]]]]},{"name":"Wasmtime docs","url":"https://docs.wasmtime.dev/","pages":[[C[53],C[48],N],[C[920],"cli",N],["2.1. Installation","cli-install",[C[920]]],["2.2. CLI Options","cli-options",[C[920]]],["2.3. CLI Logging","cli-logging",[C[920]]],["2.4. Cache Configuration","cli-cache",[C[920]]],[C[921],"lang",N],[C[922],"lang-rust",[C[921]]],["3.1.1. Hello, world!","examples-rust-hello-world",[C[921],C[922]]],["3.1.2. Calculating the GCD","examples-rust-gcd",[C[921],C[922]]],["3.1.3. Using Linear Memory","examples-rust-memory",[C[921],C[922]]],["3.1.4. WASI","examples-rust-wasi",[C[921],C[922]]],["3.1.5. Linking Modules","examples-rust-linking",[C[921],C[922]]],["3.1.6. Debugging","examples-rust-debugging",[C[921],C[922]]],["3.1.7. Core Dumps","examples-rust-core-dumps",[C[921],C[922]]],["3.1.8. Using Multi-Value","examples-rust-multi-value",[C[921],C[922]]],["3.2. C","lang-c",[C[921]]],["3.2.1. Hello, World!","examples-c-hello-world",[C[921],"3.2. C"]],["3.2.2. Calculating the GCD","examples-c-gcd",[C[921],"3.2. C"]],["3.2.3. Using Linear Memory","examples-c-memory",[C[921],"3.2. C"]],["3.2.4. WASI","examples-c-wasi",[C[921],"3.2. C"]],["3.2.5. Linking Modules","examples-c-linking",[C[921],"3.2. C"]],["3.2.6. Debugging","examples-c-debugging",[C[921],"3.2. C"]],["3.2.7. Using Multi-Value","examples-c-multi-value",[C[921],"3.2. C"]],["3.3. Python","lang-python",[C[921]]],["3.4. .NET","lang-dotnet",[C[921]]],["3.5. Go","lang-go",[C[921]]],["3.6. Bash","lang-bash",[C[921]]],["3.7. Ruby","lang-ruby",[C[921]]],["3.8. Elixir","lang-elixir",[C[921]]],[C[923],"examples",N],[C[924],"examples-debugging",[C[923]]],["4.1.1. Debugging with gdb and lldb","examples-debugging-native-debugger",[C[923],C[924]]],["4.1.2. Debugging with Core Dumps","examples-debugging-core-dumps",[C[923],C[924]]],[C[925],"examples-profiling",[C[923]]],["4.2.1. Profiling with Perf","examples-profiling-perf",[C[923],C[925]]],["4.2.2. Profiling with VTune","examples-profiling-vtune",[C[923],C[925]]],["4.2.3. Profiling with samply","examples-profiling-samply",[C[923],C[925]]],["4.2.4. Cross-platform Profiling","examples-profiling-guest",[C[923],C[925]]],["4.3. Checking Guests' Memory Accesses","wmemcheck",[C[923]]],["4.4. Building a minimal embedding","examples-minimal",[C[923]]],[C[926],C[908],N],["5.1. Release Process","stability-release",[C[926]]],["5.2. Tiers of support","stability-tiers",[C[926]]],["5.3. Platform Support","stability-platform-support",[C[926]]],["5.4. Wasm Proposals","stability-wasm-proposals",[C[926]]],[C[927],"security",N],["6.1. Disclosure Policy","security-disclosure",[C[927]]],["6.2. What is considered a security bug?","security-what-is-considered-a-security-vulnerability",[C[927]]],["6.3. Vulnerability runbook","security-vulnerability-runbook",[C[927]]],[C[928],C[746],N],["7.1. Architecture","contributing-architecture",[C[928]]],["7.2. Building","contributing-building",[C[928]]],["7.3. Testing","contributing-testing",[C[928]]],["7.4. Fuzzing","contributing-fuzzing",[C[928]]],["7.5. CI","contributing-ci",[C[928]]],["7.6. Reducing Test Cases","contributing-reducing-test-cases",[C[928]]],["7.7. Cross Compiling","contributing-cross-compiling",[C[928]]],["7.8. Coding Guidelines","contributing-coding-guidelines",[C[928]]],["7.9. Development Process","contributing-development-process",[C[928]]],["7.10. Implementing Wasm Proposals","contributing-implementing-wasm-proposals",[C[928]]],[C[929],"contributing-maintainer-guidelines",[C[928]]],["7.11.1. Code Review","contributing-code-review",[C[928],C[929]]],["7.11.2. Release Process","contributing-release-process",[C[928],C[929]]],["7.12. Governance","contributing-governance",[C[928]]],["7.13. Code of Conduct","contributing-coc",[C[928]]]]}];export default booksIndex; \ No newline at end of file diff --git a/lib/index/caniuse.js b/lib/index/caniuse.js index 3a47270..5072075 100644 --- a/lib/index/caniuse.js +++ b/lib/index/caniuse.js @@ -1 +1 @@ -const caniuseIndex=[["1.26","dotdoteq_in_patterns","dotdoteq_in_patterns","inclusive ranges in patterns",1192],["1.26","termination_trait","termination_trait","types implementing `Termination` as the return type for `fn main()`",null],["1.26","universal_impl_trait","universal_impl_trait","`impl Trait` in function arguments",null],["1.26","underscore_lifetimes","underscore_lifetimes","placeholder lifetimes (`'_`)",2115],["1.26","clone_closures",null,"`Clone` implementation for applicable closures",2132],["1.26","i128_type","i128_type","128 bit integer types",null],["1.26","conservative_impl_trait","conservative_impl_trait","`impl Trait` in function return types",null],["1.26","const_indexing","const_indexing","array indexing in constants",null],["1.26","copy_closures",null,"`Copy` implementation for applicable closures",2132],["1.26","inclusive_range_syntax","inclusive_range_syntax","inclusive range syntax",1192],["1.26","match_default_bindings","match_default_bindings","default match binding modes",2005],["1.27","cfg_target_feature","cfg_target_feature","`#[cfg(target_feature = \"...\")]`",null],["1.27","proc_ident",null,"`proc` as an identifier",null],["1.27","dyn_trait","dyn_trait","`dyn Trait` as a syntax for trait objects",null],["1.27","fn_must_use","fn_must_use","`#[must_use]` on functions",1940],["1.27","target_feature",null,"`#[target_feature(...)]`",null],["1.27","macro_lifetime_matcher","macro_lifetime_matcher","the `lifetime` fragment specifier in `macro_rules!`",null],["1.27","termination_trait_test","termination_trait_test","types implementing `Termination` as the return type for `#[test]`s",null],["1.27","generic_param_attrs","generic_param_attrs","attributes on generic parameters",1327],["1.38","thread_accesserror_copy",null,"`Copy` implementation for `thread::AccessError`",null],["1.38","duration_as_secs_f32","duration_float","`Duration::as_secs_f32`",null],["1.38","ascii_escapedefault_clone",null,"`Clone` implementation for `ascii::EscapeDefault`",null],["1.38","any_type_name","type_name","`any::type_name`",null],["1.38","global_allocator_in_submodules",null,"`#[global_allocator]` inside submodules",null],["1.38","duration_div_f64","duration_float","`Duration::div_f64`",null],["1.38","duration_mul_f32","duration_float","`Duration::mul_f32`",null],["1.38","thread_accesserror_error",null,"`Error` implementation for `thread::AccessError`",null],["1.38","ascii_escapedefault_display",null,"`Display` implementation for `ascii::EscapeDefault`",null],["1.38","duration_as_secs_f64","duration_float","`Duration::as_secs_f64`",null],["1.38","str_chars_debug",null,"`Debug` implementation for `std::str::Chars`",null],["1.38","duration_from_secs_f64","duration_float","`Duration::from_secs_f64`",null],["1.38","thread_accesserror_clone",null,"`Clone` implementation for `thread::AccessError`",null],["1.38","deprecated_macros",null,"`#[deprecated]` on macros",null],["1.38","duration_from_secs_f32","duration_float","`Duration::from_secs_f32`",null],["1.38","iter_take_double_ended",null,"`DoubleEndedIterator` implementation for `iter::Take`",null],["1.38","thread_accesserror_eq",null,"`Eq` implementation for `thread::AccessError`",null],["1.38","duration_mul_f64","duration_float","`Duration::mul_f64`",null],["1.38","thread_accesserror_partialeq",null,"`PartialEq` implementation for `thread::AccessError`",null],["1.38","ptr_cast","ptr_cast","`cast` method on pointers",null],["1.38","iter_peekable_double_ended",null,"`DoubleEndedIterator` implementation for `iter::Peekable`",null],["1.38","euclidean_division","euclidean_division","euclidean division & modulo",null],["1.38","iter_step_by_double_ended",null,"`DoubleEndedIterator` implementation for `iter::StepBy`",null],["1.38","shared_from_iter",null,"`FromIterator` implementation for `Rc` and `Arc`",null],["1.38","unpin_ptr","duration_float","`Unpin` implementations for pointers",null],["1.38","duration_div_f32","duration_float","`Duration::div_f32`",null],["1.53","vec_extend_from_within","vec_extend_from_within","`Vec::extend_from_within`",null],["1.53","atomic_ptr_fetch_update","atomic_fetch_update","`AtomicPtr::fetch_update`",null],["1.53","slice_iter_mut_as_slice","slice_iter_mut_as_slice","`slice::IterMut::as_slice`",null],["1.53","array_from_ref","array_from_ref","`std::array::from_ref`",null],["1.53","nonzero_leading_zeros","nonzero_leading_trailing_zeros","`NonZero*::leading_zeros`",null],["1.53","int_bits_const","int_bits_const","Associated `BITS` constants for integer types",null],["1.53","bufreader_seek_relative","bufreader_seek_relative","`BufReader::seek_relative`",null],["1.53","float_is_subnormal","is_subnormal","`{f32, f64}::is_subnormal`",null],["1.53","array_from_mut","array_from_ref","`std::array::from_mut`",null],["1.53","osstr_ascii","osstring_ascii","ASCII methods on `OsStr`",null],["1.53","nonzero_trailing_zeros","nonzero_leading_trailing_zeros","`NonZero*::trailing_zeros`",null],["1.53","non_ascii_idents","non_ascii_idents","non-ASCII identifiers",null],["1.53","btreemap_retain","btree_retain","`BTreeMap::retain`",null],["1.53","duration_is_zero","duration_zero","`Duration::is_zero`",null],["1.53","atomic_bool_fetch_update","atomic_fetch_update","`AtomicBool::fetch_update`",null],["1.53","or_patterns","or_patterns","nested or-patterns",null],["1.53","duration_zero","duration_zero","`Duration::ZERO`",null],["1.53","btreeset_retain","btree_retain","`BTreeSet::retain`",null],["1.53","slice_iter_mut_as_ref",null,"`AsRef<[T]>` implementation for `slice::IterMut<'_, T>`",null],["1.48","const_result_is_ok","const_result","`Result::is_ok` as `const fn`",null],["1.48","array_try_from_vec",null,"`TryFrom>` implementation for `[T; N]`",null],["1.48","const_option_as_ref","const_option","`Option::as_ref` as `const fn`",null],["1.48","deque_make_contiguous","deque_make_contiguous","`VecDeque::make_contiguous`",null],["1.48","future_pending","future_readiness_fns","`future::pending`",null],["1.48","const_ordering_reverse","const_ordering","`cmp::Ordering::reverse` as `const fn`",null],["1.48","const_option_is_some","const_option","`Option::is_some` as `const fn`",null],["1.48","future_ready","future_readiness_fns","`future::ready`",null],["1.48","write_child_stdin_ref",null,"`Write` implementation for `&ChildStdin`",null],["1.48","write_stdout_ref",null,"`Write` implementation for `&Stdout`",null],["1.48","const_ordering_then","const_ordering","`cmp::Ordering::then` as `const fn`",null],["1.48","slice_ptr_range","slice_ptr_range","slice to pointer range methods",null],["1.48","const_option_is_none","const_option","`Option::is_none` as `const fn`",null],["1.48","intra_doc_links",null,"intra-doc links",null],["1.48","write_sink_ref",null,"`Write` implementation for `&Sink`",null],["1.48","doc_alias","doc_alias","`#[doc(alias = \"…\")]`",null],["1.48","const_result_as_ref","const_result","`Result::as_ref` as `const fn`",null],["1.48","const_result_is_err","const_result","`Result::is_err` as `const fn`",null],["1.48","write_stderr_ref",null,"`Write` implementation for `&Stderr`",null],["1.30","extern_absolute_paths","extern_absolute_paths","absolute paths as paths from other crates",null],["1.30","attr_literals","attr_literals","non-string literals in attribute lists and values of key-value pairs",null],["1.30","crate_in_paths","crate_in_paths","`crate` in paths",null],["1.30","tool_attributes","tool_attributes","tool-scoped attributes",null],["1.30","macro_vis_matcher","macro_vis_matcher","the `vis` fragment specifier in `macro_rules!`",null],["1.30","proc_macro_path_invoc","proc_macro_path_invoc","multi-segment paths in attributes and derives",null],["1.30","panic_handler","panic_handler","`#[panic_handler]`",null],["1.30","raw_identifiers","raw_identifiers","raw identifiers (`r#keyword`)",null],["1.30","infer_outlives_requirements","infer_outlives_requirements","outlives requirement inference",2093],["1.30","use_extern_macro","use_extern_macro","macro imports and reexports via the module system",null],["1.30","used","used","`#[used]`",null],["1.30","non_modrs_mods","non_modrs_mods","`foo.rs` as an alternative to `foo/mod.rs`",null],["1.6","no_std","no_std","`#![no_std]`",null],["1.11","nested_cfg_attr",null,"nested `cfg_attr` attributes",null],["1.23","unsized_ptr_as_mut",null,"`as_mut` on `*mut T`",null],["1.23","unsized_ptr_as_ref",null,"`as_ref` on pointers to unsized types",null],["1.17","static_in_const","static_in_const","elision of `'static` lifetimes in `static`s and `const`s",1623],["1.17","cell_non_copy","cell_non_copy","`Cell` with non-`Copy` types",1651],["1.17","static_recursion","static_recursion","recursive static items",null],["1.17","where_clauses_with_self",null,"`Self` in the where clause of trait impl's",1647],["1.17","field_init_shorthand","field_init_shorthand","field init shorthands (`x` for `x: x` in struct initializers)",1682],["1.51","slice_fill_with","slice_fill_with","`slice::fill_with`",null],["1.51","poll_map_ok","poll_map","`Poll>>::map_ok`",null],["1.51","error_by_ref",null,"`Error` implementation for `&(impl Error)`",null],["1.51","seek_stream_position","seek_convenience","`io::Seek::stream_position`",null],["1.51","str_as_mut",null,"`AsMut` implementation for `str`",null],["1.51","array_value_iter","array_value_iter","by-value `[T; N]` iterator `core::array::IntoIter`",null],["1.51","arc_decrement_strong_count","arc_mutate_strong_count","`Arc::decrement_strong_count`",null],["1.51","arc_increment_strong_count","arc_mutate_strong_count","`Arc::increment_strong_count`",null],["1.51","nonzero_rem",null,"`Rem` implementation for `u{0}`",null],["1.51","poll_map_err","poll_map","`Poll>>::map_err`",null],["1.51","slice_strip_suffix","slice_strip","`slice::strip_suffix`",null],["1.51","box_send_sync_any_downcast","box_send_sync_any_downcast","`Box::::downcast`",null],["1.51","iterator_reduce","iterator_fold_self","`Iterator::reduce`",null],["1.51","nonzero_div",null,"`Div` implementation for `u{0}`",null],["1.51","unsigned_abs","unsigned_abs","the `unsigned_abs` method on signed integers",null],["1.51","wake_trait","wake_trait","the `Wake` trait",null],["1.51","min_const_generics","min_const_generics","simple const generics",null],["1.51","slice_strip_prefix","slice_strip","`slice::strip_prefix`",null],["1.51","empty_seek",null,"`io::Seek` implementation for `io::Empty`",null],["1.57","vec_try_reserve_exact","try_reserve","`Vec::try_reserve_exact`",null],["1.57","string_try_reserve_exact","try_reserve","`String::try_reserve_exact`",null],["1.57","array_as_mut_slice","array_as_slice","`<[T; N]>::as_mut_slice`",null],["1.57","vecdeque_try_reserve_exact","try_reserve","`VecDeque::try_reserve_exact`",null],["1.57","array_as_slice","array_as_slice","`<[T; N]>::as_slice`",null],["1.57","proc_macro_is_available","proc_macro_is_available","`proc_macro::is_available`",null],["1.57","vec_try_reserve","try_reserve","`Vec::try_reserve`",null],["1.57","const_panic","const_panic","panicking in `const` contexts",null],["1.57","hashmap_try_reserve","try_reserve","`HashMap::try_reserve`",null],["1.57","vecdeque_try_reserve","try_reserve","`VecDeque::try_reserve`",null],["1.57","macro_attrs_in_derive_output","macro_attributes_in_derive_output","attribute macros after derive macros, on the same item",null],["1.57","hashset_try_reserve","try_reserve","`HashSet::try_reserve`",null],["1.57","iter_map_while","iter_map_while","`Iterator::map_while`",null],["1.57","string_try_reserve","try_reserve","`String::try_reserve`",null],["1.67","nonzero_bits","nonzero_bits","`NonZero*::BITS`",null],["1.67","int_log","int_log","integer logarithm methods on integers",null],["1.67","control_flow_eq",null,"`Eq` implementation for `ControlFlow`",null],["1.67","const_char_from_digit",null,"`char::from_digit` as `const fn`",null],["1.67","control_flow_hash",null,"`Hash` implementation for `ControlFlow`",null],["1.67","const_char_from_u32",null,"`char::from_u32` as `const fn`",null],["1.67","const_char_to_digit",null,"`char::to_digit` as `const fn`",null],["1.33","rc_arc_pin_method_receiver",null,"`Rc`, `Arc` or `Pin` as a method receiver",null],["1.33","unpin","pin","`marker::Unpin`",null],["1.33","pin","pin","`pin::Pin`",null],["1.33","exhaustive_integer_patterns","exhaustive_integer_patterns","integer match exhaustiveness checking",2591],["1.33","repr_packed","repr_packed","`#[repr(packed(N))]` on structs",1399],["1.33","const_let","const_let","let bindings, assignments and destructuring in `const fn`",2341],["1.33","cfg_target_vendor","cfg_target_vendor","`cfg(target_vendor)`",null],["1.33","underscore_imports","underscore_imports","underscore imports (impl-only trait imports)",2166],["1.33","phantom_unpinned","pin","`marker::PhantomUnpinned`",null],["1.33","if_while_or_patterns","if_while_or_patterns","or-patterns in `if let` and `while let`",2175],["1.33","min_const_unsafe_fn","min_const_unsafe_fn","`const unsafe fn`s inside `unsafe` blocks in `const fn`",null],["1.33","irrefutable_let_patterns","irrefutable_let_patterns","irrefutable patterns in `if let` and `while let`",2086],["1.33","cfg_attr_multi","cfg_attr_multi","`#[cfg_attr(cfg, attr1, attr2, attr3)]`",2539],["1.33","const_ip","const_ip","`Ipv4Addr::new` as `const fn`",null],["1.54","btreemap_into_keys","map_into_keys_values","`BTreeMap::into_keys`",null],["1.54","btreemap_into_values","map_into_keys_values","`BTreeMap::into_values`",null],["1.54","hashmap_into_keys","map_into_keys_values","`HashMap::into_keys`",null],["1.54","extended_key_value_attrs","extended_key_value_attributes","macro expansion in key-value attributes",null],["1.54","hashmap_into_values","map_into_keys_values","`HashMap::into_values`",null],["1.1","split_whitespace","split_whitespace","`str::split_whitespace`",1054],["1.10","cstring_default",null,"`Default` implementation for `CString`",null],["1.10","cstr_default",null,"`Default` implementation for `&CStr`",null],["1.10","weak_new","downgraded_weak","`sync::Weak::new`",null],["1.55","maybe_uninit_write","maybe_uninit_write","`MaybeUninit::write`",null],["1.55","array_map","array_map","`[T; N]::map`",null],["1.55","range_from_patterns","half_open_range_patterns","\"RangeFrom\" patterns (`a..`)",null],["1.55","proc_macro_group_span_close","proc_macro_group_span","`Group::span_close`",null],["1.55","proc_macro_group_span_open","proc_macro_group_span","`Group::span_open`",null],["1.55","bound_cloned","bound_cloned","`Bound::cloned`",null],["1.55","control_flow","control_flow_enum_type","the `ControlFlow` enum",null],["1.35","boxed_closure_impls","boxed_closure_impls","boxed closure `Fn*` trait implementations",null],["1.35","exact_size_case_mapping_iter",null,"`ExactSizeIterator` implementation for `ToLowercase` and `ToUppercase`",null],["1.35","coerce_closure_to_unsafe_fn_ptr",null,"closure to unsafe function pointer coercions",null],["1.35","alloc_system_default",null,"`Default` implementation for `alloc::System`",null],["1.35","asraw_stdio_locks",null,"`AsRawFd` implementation for `StdinLock`, `StdoutLock` and `StderrLock`",null],["1.35","dbg_no_args",null,"`dbg!` without arguments",null],["1.29","proc_macro","proc_macro","procedural macros",null],["1.60","slice_escape_ascii","inherent_ascii_escape","`[u8]::escape_ascii`",null],["1.60","vec_spare_capacity","vec_spare_capacity","`Vec::spare_capacity_mut`",null],["1.60","maybe_uninit_assume_init_drop","maybe_uninit_extra","`MaybeUninit::assume_init_drop`",null],["1.60","rc_new_cyclic","arc_new_cyclic","`Rc::new_cyclic`",null],["1.60","arc_new_cyclic","arc_new_cyclic","`Arc::new_cyclic`",null],["1.60","weak_dep_features",null,"Weak Cargo dependency features",null],["1.60","maybe_uninit_assume_init_read","maybe_uninit_extra","`MaybeUninit::assume_init_read`",null],["1.60","namespaced_features",null,"namespaced Cargo features",null],["1.60","cfg_panic",null,"`#[cfg(panic = ...)]`",null],["1.60","not_never",null,"`Not` implementation for `!`",null],["1.60","u8_escape_ascii","inherent_ascii_escape","`u8::escape_ascii`",null],["1.18","windows_subsystem","windows_subsystem","`#![windows_subsystem]`",null],["1.18","pub_restricted","pub_restricted","`pub(restricted)` visibilities",1422],["1.70","result_is_err_and",null,"`Result::is_err_and`",null],["1.70","concat_negative_lit",null,"negative literals in `concat!`",null],["1.70","once_cell",null,"`OnceCell`",2788],["1.70","once_lock",null,"`OnceLock`",2788],["1.70","atomic_as_ptr",null,"`as_ptr` method for atomics",null],["1.70","result_is_ok_and",null,"`Result::is_ok_and`",null],["1.70","option_is_some_and",null,"`Option::is_some_and`",null],["1.42","wait_timeout_until","wait_timeout_until","`Condvar::wait_timeout_while`",null],["1.42","transparent_enums","transparent_enums","`#[repr(transparent)]` on single-variant enums",null],["1.42","eq_cursor",null,"`PartialEq` and `Eq` implementations for `io::Cursor`",null],["1.42","slice_from_raw_parts","slice_from_raw_parts","`ptr::slice_from_raw_parts_mut`",null],["1.42","slice_patterns","slice_patterns","subslice patterns (`[a, .., b]` and `[a, xs @ .., b]`)",null],["1.42","debug_map_key_value","debug_map_key_value","`DebugMap::value`",null],["1.42","proc_macro_extern_prelude",null,"the `proc_macro` crate without `extern crate` in procedural macro crates",null],["1.42","attr_on_inline_mod",null,"attribute macros on inline modules",null],["1.42","alloc_layout_const_new","alloc_layout_const_new","`alloc::Layout::new` as `const fn`",null],["1.42","manually_drop_take","manually_drop_take","`ManuallyDrop::take`",null],["1.42","wait_until","wait_until","`Condvar::wait_while`",null],["1.42","matches_macro","matches_macro","`matches!`",null],["1.42","iter_empty_send_sync","iter_empty_send_sync","unconditional `Send` and `Sync` implementations for `iter::Empty`",null],["1.0","struct_variant","struct_variant","struct variants in enums",null],["1.0","macro_rules","macro_rules","`macro_rules!`",null],["1.0","while_let","while_let","`while let` expressions",null],["1.0","if_let","if_let","`if let` expressions",null],["1.0","default_type_params","default_type_params","type parameter defaults",null],["1.0","associated_types","associated_types","associated types in traits",null],["1.0","tuple_indexing","tuple_indexing","tuple indexing",null],["1.0","slicing_syntax","slicing_syntax","`&foo[a..b]` as slicing syntax",null],["1.36","maybe_uninit","maybe_uninit","`mem::MaybeUninit`",1892],["1.36","io_cursor_default",null,"`Default` implementation for `io::Cursor`",null],["1.36","string_from_string_ref",null,"`From<&String>` implementation for `String`",null],["1.36","alloc","alloc","the `alloc` crate",null],["1.36","const_layout_from_size_align_unchecked",null,"`alloc::Layout::from_size_align_unchecked` as `const fn`",null],["1.36","dbg_multiple_args",null,"multiple arguments in `dbg!` macro invocations",null],["1.36","const_nonnull_dangling","const_nonnull_dangling","`NonNull::dangling` as `const fn`",null],["1.36","hashbrown",null,"`hashbrown::HashMap` as the implementation of `HashMap`",null],["1.36","string_borrow_mut_str",null,"`BorrowMut` implementation for `String`",null],["1.36","nll_2015",null,"Non-Lexical Lifetimes (NLL) on the 2015 edition",null],["1.36","const_nonnull_cast","const_nonnull_cast","`NonNull::cast` as `const fn`",null],["1.36","const_needs_drop","const_needs_drop","`mem::needs_drop` as `const fn`",null],["1.69","union_field_assoc_type",null,"associated types as field types in a `union`",null],["1.69","rc_asrawfd",null,"`AsRawFd` implementation for `Rc`",null],["1.69","rc_asfd",null,"`AsFd` implementation for `Rc`",null],["1.52","str_split_once","str_split_once","`str::split_once`",null],["1.52","const_char_to_ascii_lowercase","const_ascii_methods_on_intrinsics","`char::to_ascii_lowercase` as `const fn`",null],["1.52","const_u8_to_ascii_uppercase","const_ascii_methods_on_intrinsics","`u8::to_ascii_uppercase` as `const fn`",null],["1.52","const_char_eq_ignore_ascii_case","const_ascii_methods_on_intrinsics","`char::eq_ignore_ascii_case` as `const fn`",null],["1.52","const_char_len_utf8","const_char_len_utf","`char::len_utf8` as `const fn`",null],["1.52","str_rsplit_once","str_split_once","`str::rsplit_once`",null],["1.52","const_u8_to_ascii_lowercase","const_ascii_methods_on_intrinsics","`u8::to_ascii_lowercase` as `const fn`",null],["1.52","const_char_len_utf16","const_char_len_utf","`char::len_utf16` as `const fn`",null],["1.52","const_u8_eq_ignore_ascii_case","const_ascii_methods_on_intrinsics","`u8::eq_ignore_ascii_case` as `const fn`",null],["1.52","const_char_to_ascii_uppercase","const_ascii_methods_on_intrinsics","`char::to_ascii_uppercase` as `const fn`",null],["1.52","char_partial_eq_punct",null,"`PartialEq` implementation for `char`",null],["1.52","arc_error",null,"`Error` implementation for `Arc`",null],["1.61","pin_static_ref","pin_static_ref","`Pin::static_ref`",null],["1.61","const_impl_trait","const_impl_trait","`const fn` returning `impl Trait`",null],["1.61","process_exitcode",null,"`process::ExitCode`",null],["1.61","unix_socket_creation","unix_socket_creation","`unix::net::SocketAddr::from_pathname`",null],["1.61","vec_retain_mut",null,"`Vec::retain_mut`",null],["1.61","vec_from_array_ref",null,"`From<&[T; N]>` implementation for `Vec`",null],["1.61","pin_static_mut","pin_static_ref","`Pin::static_mut`",null],["1.61","joinhandle_is_finished",null,"`JoinHandle::is_finished`",null],["1.61","const_fn_fn_ptr_basics","const_fn_fn_ptr_basics","`const fn` returning function pointers",null],["1.61","vec_from_array_mut_ref",null,"`From<&mut [T; N]>` implementation for `Vec`",null],["1.61","termination_trait_lib",null,"the `Termination` trait",null],["1.61","const_fn_trait_bound","const_fn_trait_bound","Trait bounds on generics of a `const fn`",null],["1.61","write_cursor_array",null,"`Write` implementation for `Cursor<[u8; N]>`",null],["1.61","vecdeque_retain_mut",null,"`VecDeque::retain_mut`",null],["1.25","match_beginning_vert","match_beginning_vert","`|` at the beginning of match arms",1925],["1.25","use_nested_groups","use_nested_groups","nested groups in imports",2128],["1.25","repr_align","repr_align","`#[repr(align(N))]`",1358],["1.15","proc_macro_derive","proc_macro","procedural derive macros (macros 1.1)",1681],["1.4","use_group_renaming",null,"item renamings in import groups",null],["1.39","instant_checked_duration_since","checked_duration_since","`Instant::checked_duration_since`",null],["1.39","const_str_as_bytes",null,"`str::as_bytes` as `const fn`",null],["1.39","const_vec_new","const_vec_new","`Vec::new` as `const fn`",null],["1.39","param_attrs","param_attrs","attributes on function parameters",null],["1.39","instant_saturating_duration_since","checked_duration_since","`Instant::saturating_duration_since`",null],["1.39","bind_by_move_pattern_guards","bind_by_move_pattern_guards","shared references to bind-by-move patterns in `match` arms' guards",null],["1.39","async","async_await","`async`",null],["1.39","const_slice_len","const_slice_len","`[T]::len` as `const fn`",null],["1.39","const_linkedlist_new","const_linked_list_new","`LinkedList::new` as `const fn`",null],["1.39","const_string_new","const_string_new","`String::new` as `const fn`",null],["1.39","pin_into_inner","pin_into_inner","`Pin::into_inner`",null],["1.39","await","async_await","`.await`",null],["1.39","const_str_len","const_str_len","`str::len` as `const fn`",null],["1.7","vec_as_slice","vec_as_slice","`Vec::as_slice`",null],["1.7","string_as_mut_str","string_as_str","`String::as_mut_str`",null],["1.7","vec_as_mut_slice","vec_as_slice","`Vec::as_mut_slice`",null],["1.7","string_as_str","string_as_str","`String::as_str`",null],["1.64","arc_asfd",null,"`AsFd` implementation for `Arc`",null],["1.64","alloc_cstr","alloc_c_str","`CString` in `alloc`",null],["1.64","core_cstr","core_c_str","`CStr` in `core`",null],["1.64","into_future","into_future","the `IntoFuture` trait",null],["1.64","cargo_workspace_inheritance",null,"Cargo workspace inheritance",2906],["1.64","core_ffi_c","core_ffi_c","type aliases for C's arithmetic types in `core::ffi`",null],["1.64","windows_filetypeext",null,"`std::os::windows::fs::FileTypeExt`",null],["1.64","ready_macro","ready_macro","`task::ready!`",null],["1.64","future_poll_fn","future_poll_fn","`core::future::poll_fn`",null],["1.64","box_asfd",null,"`AsFd` implementation for `Box`",null],["1.8","augmented_assignments","augmented_assignments","assignment operator overloading",null],["1.8","braced_empty_structs","braced_empty_structs","empty structs and enum variants with braces",218],["1.20","unimplemented_macro_args",null,"`unimplemented!` with a message",null],["1.20","compile_error","compile_error_macro","`compile_error!`",1695],["1.20","associated_consts","associated_consts","associated constants in `trait` and `impl` blocks",null],["1.20","struct_field_attributes","struct_field_attributes","attributes on struct literal fields",null],["1.19","eprint","eprint","`eprint!`",null],["1.19","eprintln","eprint","`eprintln!`",1869],["1.19","relaxed_adts","relaxed_adts","numeric fields in struct expressions and patterns",null],["1.19","untagged_unions","untagged_unions","`union`s",1444],["1.19","closure_to_fn_coercion","closure_to_fn_coercion","non-capturing closure to function pointer coercion",1558],["1.19","loop_break_value","loop_break_value","`break` with a value inside `loop`s",1624],["1.63","binaryheap_try_reserve","try_reserve_2","`BinaryHeap::try_reserve`",null],["1.63","vecdeque_read",null,"`io::Read` implementation for `VecDeque`",null],["1.63","const_mutex_new",null,"`Mutex::new` as `const fn`",null],["1.63","toowned_clone_into","toowned_clone_into","`ToOwned::clone_into`",null],["1.63","osstring_try_reserve","try_reserve_2","`OsString::try_reserve`",null],["1.63","nonnull_slice_ptr_len",null,"`NonNull<[T]>::len`",null],["1.63","refmut_filter_map","cell_filter_map","`cell::RefMut::filter_map`",null],["1.63","const_condvar_new",null,"`Condvar::new` as `const fn`",null],["1.63","binaryheap_try_reserve_exact","try_reserve_2","`BinaryHeap::try_reserve_exact`",null],["1.63","nonzero_checked_ops","nonzero_checked_ops","checked numeric operations for `NonZero*`",null],["1.63","const_rwlock_new",null,"`RwLock::new` as `const fn`",null],["1.63","ref_filter_map","cell_filter_map","`cell::Ref::filter_map`",null],["1.63","vecdeque_write",null,"`io::Write` implementation for `VecDeque`",null],["1.63","pathbuf_try_reserve","try_reserve_2","`PathBuf::try_reserve`",null],["1.63","path_try_exists",null,"`Path::try_exists`",null],["1.63","scoped_threads","scoped_threads","scoped threads",3151],["1.63","const_slice_from_ref",null,"`slice::from_ref` as `const fn`",null],["1.63","pathbuf_try_reserve_exact","try_reserve_2","`PathBuf::try_reserve_exact`",null],["1.63","explicit_generic_args_with_impl_trait","explicit_generic_args_with_impl_trait","turbofish syntax on generic functions with an `impl Trait` argument",null],["1.63","const_array_from_ref",null,"`array::from_ref` as `const fn`",null],["1.63","osstring_try_reserve_exact","try_reserve_2","`OsString::try_reserve_exact`",null],["1.63","array_from_fn","array_from_fn","`array::from_fn`",null],["1.63","box_into_pin","box_into_pin","`Box::into_pin`",null],["1.66","span_source_text","proc_macro_span","`proc_macro::Span::source_text`",null],["1.66","arbitrary_enum_discriminant","arbitrary_enum_discriminant","allow arbitrary enums to have explicit discriminants",2363],["1.66","btreemap_first_entry","map_first_last","`BTreeMap::first_entry`",null],["1.66","btreeset_pop_last","map_first_last","`BTreeSet::pop_last`",null],["1.66","btreemap_pop_first","map_first_last","`BTreeMap::pop_first`",null],["1.66","os_fd","os_fd","`std::os::fd` module",null],["1.66","option_unzip","unzip_option","`Option::unzip`",null],["1.66","btreeset_pop_first","map_first_last","`BTreeSet::pop_first`",null],["1.66","half_open_range_patterns","half_open_range_patterns","half-open range patterns",null],["1.66","btreemap_pop_last","map_first_last","`BTreeMap::pop_last`",null],["1.66","btreemap_last_entry","map_first_last","`BTreeMap::last_entry`",null],["1.66","const_btreemap_new","const_btree_new","`BTreeMap::new` as `const fn`",null],["1.66","btreemap_first_key_value","map_first_last","`BTreeMap::first_key_value`",null],["1.66","btreemap_last_key_value","map_first_last","`BTreeMap::last_key_value`",null],["1.66","const_btreeset_new","const_btree_new","`BTreeSet::new` as `const fn`",null],["1.66","btreeset_last","map_first_last","`BTreeSet::last`",null],["1.66","btreeset_first","map_first_last","`BTreeSet::first`",null],["1.66","hint_black_box","bench_black_box","`hint::black_box`",2360],["1.9","deprecated","deprecated","`#[deprecated]`",1270],["unstable","const_io_cursor_get_ref","const_io_structs","`io::Cursor::get_ref` as `const fn`",null],["unstable","try_blocks","try_blocks","`try` blocks",243],["unstable","generators","generators","generators",2033],["unstable","raw_ref_op","raw_ref_op","the raw reference operator (`&raw [mut | const] $place`)",2582],["unstable","duration_checked_float","duration_checked_float","`Duration::try_from_secs_*`",null],["unstable","proc_macro_diagnostics","proc_macro_diagnostics","procedural macro diagnostics",null],["unstable","const_in_array_repeat_expressions","const_in_array_repeat_expressions","constants in array repeat expressions",2203],["unstable","custom_inner_attributes","custom_inner_attributes","custom inner attributes",null],["unstable","const_ptr_write_unaligned","const_ptr_write","pointer `write_unaligned` as `const fn`",null],["unstable","iterator_intersperse","iter_intersperse","`Iterator::intersperse`",null],["unstable","is_sorted_slice","is_sorted","`is_sorted` method family on slices",2351],["unstable","abi_thiscall","abi_thiscall","`thiscall` calling convention",null],["unstable","cfg_target_has_atomic","cfg_target_has_atomic","`cfg(target_has_atomic = ...)`",null],["unstable","let_chains","let_chains","if- and while-let-chains",null],["unstable","option_zip_with","option_zip","`Option::zip_with`",null],["unstable","specialization","specialization","specialization",null],["unstable","cow_is_borrowed","cow_is_borrowed","`Cow::is_borrowed`",null],["unstable","never_type","never_type","the never type (`!`)",null],["unstable","stmt_expr_attributes","stmt_expr_attributes","attributes on expressions",16],["unstable","plugin","plugin","`#![plugin(...)]`",null],["unstable","bound_as_mut","bound_as_ref","`ops::Bound::as_mut`",null],["unstable","const_ptr_write","const_ptr_write","pointer `write` as `const fn`",null],["unstable","exhaustive_patterns","exhaustive_patterns","exhaustive pattern matching on types that contain uninhabited types",1872],["unstable","nonnull_slice_from_raw_parts","nonnull_slice_from_raw_parts","`NonNull<[T]>::slice_from_raw_parts`",null],["unstable","derive_default_enum","derive_default_enum","`#[derive(Default)]` on enums",null],["unstable","linkedlist_drain_filter","drain_filter","`LinkedList:::drain_filter`",null],["unstable","hashmap_try_insert","map_try_insert","`HashMap::try_insert`",null],["unstable","const_io_empty","const_io_structs","`io::empty` as `const fn`",null],["unstable","pub_macro_rules","pub_macro_rules","module scoping for `macro_rules!` macros",null],["unstable","cow_is_owned","cow_is_borrowed","`Cow::is_owned`",null],["unstable","half_open_range_patterns","half_open_range_patterns","half-open range patterns",null],["unstable","register_tool","register_tool","`#![register_tool]`",null],["unstable","slice_ptr_len","slice_ptr_len","the `len` method on raw slices",null],["unstable","const_io_cursor_new","const_io_structs","`io::Cursor::new` as `const fn`",null],["unstable","link_cfg","link_cfg","`#[link(..., cfg(...))]`",null],["unstable","plugin_registrar","plugin_registrar","`#[plugin_registrar]`",null],["unstable","naked_functions","naked_functions","`#[naked]` functions",null],["unstable","nonzero_is_power_of_two","nonzero_is_power_of_two","`NonZeroU*::is_power_of_two`",null],["unstable","no_core","no_core","`#![no_core]`",null],["unstable","is_sorted_iterator","is_sorted","`is_sorted` method family on `Iterator`",2351],["unstable","exclusive_range_pattern","exclusive_range_pattern","exclusive range patterns (`a..b`)",null],["unstable","iterator_intersperse_with","iter_intersperse","`Iterator::intersperse_with`",null],["unstable","const_io_cursor_position","const_io_structs","`io::Cursor::position` as `const fn`",null],["unstable","vec_drain_filter","drain_filter","`Vec:::drain_filter`",null],["unstable","type_alias_impl_trait","type_alias_impl_trait","`impl Trait` in type aliases",2515],["unstable","assert_matches","assert_matches","`assert_matches!`",null],["unstable","total_cmp","total_cmp","the `total_cmp` method on float types",null],["unstable","default_free_fn","default_free_fn","the free `default` function (shorthand for `Default::default`)",null],["unstable","const_generics","const_generics","const generics",2000],["unstable","const_io_repeat","const_io_structs","`io::repeat` as `const fn`",null],["unstable","thread_local","thread_local","`#[thread_local]` on `static`s",null],["unstable","try_trait_v2","try_trait_v2","the `Try` trait",3058],["unstable","termination_trait_lib",null,"`Termination` implementation for `Result`",null],["unstable","box_into_boxed_slice","box_into_boxed_slice","`Box::into_boxed_slice`",null],["unstable","const_io_sink","const_io_structs","`io::sink` as `const fn`",null],["unstable","const_mut_refs","const_mut_refs","`&mut T` in `const` contexts",null],["unstable","cfg_version","cfg_version","`#[cfg(version(..))]`",null],["unstable","slice_take","slice_take","`take` method family on slices",null],["unstable","associated_type_defaults","associated_type_defaults","default values for associated types",null],["unstable","link_args","link_args","`#[link_args]`",null],["unstable","btreemap_try_insert","map_try_insert","`BTreeMap::try_insert`",null],["1.44","path_buf_shrink_to_fit","path_buf_capacity","`PathBuf::shrink_to_fit`",null],["1.44","convert_infallible_hash",null,"`Hash` implementation for `convert::Infallible`",null],["1.44","path_buf_reserve_exact","path_buf_capacity","`PathBuf::reserve_exact`",null],["1.44","alloc_layout_pad_to_align","alloc_layout_extras","`alloc::Layout::pad_to_align`",null],["1.44","osstring_deref_mut",null,"`DerefMut` implementation for `OsString`",null],["1.44","alloc_layout_array","alloc_layout_extras","`alloc::Layout::array`",null],["1.44","from_mut_str_for_string",null,"`From<&mut str>` implementation for `String`",null],["1.44","no_std_async_await",null,"`async` / `.await` in `#[no_std]` crates",null],["1.44","alloc_layout_align_to","alloc_layout_extras","`alloc::Layout::align_to`",null],["1.44","lexerror_display",null,"`Display` implementation for `proc_macro::LexError`",null],["1.44","path_buf_clear","path_buf_capacity","`PathBuf::clear`",null],["1.44","float_approx_unchecked_to","float_approx_unchecked_to","unchecked float → int conversion",null],["1.44","path_buf_reserve","path_buf_capacity","`PathBuf::reserve`",null],["1.44","vec_from_array",null,"`From<[T; N]>` implementation for `Vec`",null],["1.44","osstring_indexmut_rangefull",null,"`IndexMut` implementation for `OsString`",null],["1.44","ioslice_copy",null,"`Copy` implementation for `io::IoSlice`",null],["1.44","path_buf_capacity","path_buf_capacity","`PathBuf::capacity`",null],["1.44","lexerror_error",null,"`Error` implementation for `proc_macro::LexError`",null],["1.44","alloc_layout_extend","alloc_layout_extras","`alloc::Layout::extend`",null],["1.44","ioslice_clone",null,"`Clone` implementation for `io::IoSlice`",null],["1.44","path_buf_with_capacity","path_buf_capacity","`PathBuf::with_capacity`",null],["1.44","const_int_to_from_bytes",null,"integer ↔ bytes conversion functions as `const fn`",null],["1.12","cfg_attr_path",null,"`cfg_attr` on `path` attributes",null],["1.12","nested_macro_rules",null,"`macro_rules!` within `macro_rules!`",null],["1.47","proc_macro_raw_ident","proc_macro_raw_ident","`proc_macro::Ident::new_raw`",null],["1.47","const_type_id","const_type_id","`TypeId::of` in `const fn`",null],["1.47","tau_constant","tau_constant","the `TAU` constant",null],["1.47","result_deref","inner_deref","`as_deref` and `as_deref_mut` on `Result`",null],["1.47","array_gt_32_impls",null,"`[T; N]` trait implementations with N > 32",null],["1.47","cstr_range_from",null,"`Index` implementation for `CStr`",null],["1.47","range_full_default",null,"`Default` implementation for `RangeFull`",null],["1.47","vec_leak","vec_leak","`Vec::leak`",null],["1.47","range_default",null,"`Default` implementation for `Range`",null],["1.50","or_insert_with_key","or_insert_with_key","`Entry::or_insert_with_key`",null],["1.50","f32_clamp","clamp","`f32::clamp`",1961],["1.50","const_ipv6addr_to_ipv4","const_ipv6","`Ipv6Addr::to_ipv4` as `const fn`",null],["1.50","const_ipv4addr_to_ipv6_mapped","const_ipv4","`Ipv4Addr::to_ipv6_mapped` as `const fn`",null],["1.50","bool_then","lazy_bool_to_option","`bool::then`",null],["1.50","ord_clamp","clamp","`Ord::clamp`",1961],["1.50","const_ipv6addr_is_multicast","const_ipv6","`Ipv6Addr::is_multicast` as `const fn`",null],["1.50","const_ipv4addr_is_documentation","const_ipv4","`Ipv4Addr::is_documentation` as `const fn`",null],["1.50","const_ipaddr_is_multicast","const_ip","`IpAddr::is_multicast` as `const fn`",null],["1.50","const_ipv6addr_segments","const_ipv6","`Ipv6Addr::segments` as `const fn`",null],["1.50","const_ipv6addr_is_unspecified","const_ipv6","`Ipv6Addr::is_unspecified` as `const fn`",null],["1.50","refcell_take","refcell_take","`RefCell::take`",null],["1.50","const_ipv4addr_is_loopback","const_ipv4","`Ipv4Addr::is_loopback` as `const fn`",null],["1.50","const_ipaddr_is_ipv4","const_ip","`IpAddr::is_ipv4` as `const fn`",null],["1.50","const_ipv4addr_octets","const_ipv4","`Ipv4Addr::octets` as `const fn`",null],["1.50","slice_fill","slice_fill","`slice::fill`",null],["1.50","const_ipaddr_is_ipv6","const_ip","`IpAddr::is_ipv6` as `const fn`",null],["1.50","const_ipv4addr_to_ipv6_compatible","const_ipv4","`Ipv4Addr::to_ipv6_compatible` as `const fn`",null],["1.50","punct_partial_eq_char",null,"`PartialEq` implementation for `proc_macro::Punct`",null],["1.50","const_ipv4addr_is_multicast","const_ipv4","`Ipv4Addr::is_multicast` as `const fn`",null],["1.50","unsafe_cell_get_mut","unsafe_cell_get_mut","`UnsafeCell::get_mut`",null],["1.50","assign_manually_drop_in_unions",null,"safe assignment to `ManuallyDrop` in `union`s",null],["1.50","f64_clamp","clamp","`f64::clamp`",1961],["1.50","const_ipaddr_is_unspecified","const_ip","`IpAddr::is_unspecified` as `const fn`",null],["1.50","const_ipaddr_is_loopback","const_ip","`IpAddr::is_loopback` as `const fn`",null],["1.50","const_ipv6addr_is_loopback","const_ipv6","`Ipv6Addr::is_loopback` as `const fn`",null],["1.50","const_ipv4addr_is_private","const_ipv4","`Ipv4Addr::is_private` as `const fn`",null],["1.50","const_ipv4addr_is_link_local","const_ipv4","`Ipv4Addr::is_link_local` as `const fn`",null],["1.50","const_ipv4addr_is_broadcast","const_ipv4","`Ipv4Addr::is_broadcast` as `const fn`",null],["1.74","saturating","saturating_int_impl","the `Saturating` integer wrapper type",928],["1.45","nonzero_bitor_assign","nonzero_bitor","`BitOrAssign` implementations for `NonZero` integer types",null],["1.45","arc_from_cow",null,"`From>` implementation for `Arc`",null],["1.45","proc_macro_span_located_at","proc_macro_span_located_at","`proc_macro::Span::located_at`",null],["1.45","rc_from_cow",null,"`From>`` implementation for ``Rc`",null],["1.45","btreemap_remove_entry","btreemap_remove_entry","`BTreeMap::remove_entry`",null],["1.45","proc_macro_span_mixed_site","proc_macro_mixed_site","`proc_macro::Span::mixed_site`",null],["1.45","expr_proc_macro","proc_macro_hygiene","function-like procedural macros in expression, pattern and statement position",null],["1.45","atomic_fetch_update","no_more_cas","`AtomicN::fetch_update`",null],["1.45","unicode_version","unicode_version","`std::char::UNICODE_VERSION`",null],["1.45","proc_macro_span_resolved_at","proc_macro_span_resolved_at","`proc_macro::Span::resolved_at`",null],["1.45","nonzero_bitor","nonzero_bitor","`BitOr` implementations for `NonZero` integer types",null],["1.45","box_from_cow","box_from_cow","`From>` implementations for `Box`ed types",null],["1.45","atomic_min_max","atomic_min_max","`AtomicN::{fetch_min, fetch_max}`",null],["1.43","const_ascii_methods_on_intrinsics","const_ascii_methods_on_intrinsics","`u8::is_ascii` as `const fn`",null],["1.43","from_utf8_error_eq",null,"`Eq` implementation for `FromUtf8Error`",null],["1.43","boxed_slice_try_from","boxed_slice_try_from","`TryFrom` implementations from boxed slices to boxed arrays",null],["1.43","from_utf8_error_clone",null,"`Clone` implementation for `FromUtf8Error`",null],["1.43","extra_log_consts","extra_log_consts","`{f32, f64}::{LOG2_10, LOG10_2}`",null],["1.43","cstring_from_vec_of_nonzerou8",null,"`From>` implementation for `CString`",null],["1.43","iter_once_with","iter_once_with","`iter::once_with`",null],["1.43","core_primitive","core_primitive","`core::primitive`",null],["1.43","assoc_int_consts","assoc_int_consts","numeric constants as associated constants",null],["1.43","string_as_mut",null,"`AsMut` implementation for `String`",null],["1.43","from_utf8_error_partial_eq",null,"`PartialEq` implementation for `FromUtf8Error`",null],["1.43","if_attr",null,"attributes on `if` expressions",null],["1.43","once_is_completed","once_is_completed","`sync::once::Once::is_completed`",null],["1.13","debug_assert_ne","assert_ne","`debug_assert_ne!`",1653],["1.13","type_macros","type_macros","`macro_rules!` macros in type position",null],["1.13","assert_ne","assert_ne","`assert_ne!`",1653],["1.13","question_mark","question_mark","the `?` operator",243],["1.5","vec_resize","vec_resize","`Vec::resize`",509],["1.5","fs_canonicalize","fs_canonicalize","`fs::canonicalize`",1044],["1.28","pure_ident",null,"`pure` as an identifier",2421],["1.28","sizeof_ident",null,"`sizeof` as an identifier",2421],["1.28","repr_transparent","repr_transparent","`#[repr(transparent)]` on newtype structs",null],["1.28","alignof_ident",null,"`alignof` as an identifier",2421],["1.28","global_allocator","global_allocator","`#[global_allocator]`",null],["1.28","offsetof_ident",null,"`offsetof` as an identifier",2421],["1.65","bound_as_ref","bound_as_ref","`ops::Bound::as_ref`",null],["1.65","io_read_to_string","io_read_to_string","`io::read_to_string`",null],["1.65","generic_associated_types","generic_associated_types","generic associated types",1598],["1.65","label_break_value","label_break_value","break out of labelled blocks with value",2046],["1.65","ptr_cast_const","ptr_const_cast","`<*mut T>::cast_const`",null],["1.65","let_else","let_else","let-else statements",3137],["1.65","ptr_cast_mut","ptr_const_cast","`<*const T>::cast_mut`",null],["1.65","backtrace","backtrace","`std::backtrace`",2504],["1.34","const_overflowing_neg",null,"`overflowing_neg` as `const fn`",null],["1.34","alternative_registries",null,"alternative registries to crates.io in cargo",null],["1.34","extern_crate_self","extern_crate_self","`extern crate self as foo;`",null],["1.34","const_wrapping_neg",null,"`wrapping_neg` as `const fn`",null],["1.34","deprecated_equals_reason",null,"`#[deprecated = \"reason\"]` as a shorthand for `#[deprecated(note = \"reason\")]`",null],["1.34","unrestricted_attribute_tokens","unrestricted_attribute_tokens","arbitrary token streams in procedural attribute macros",null],["1.46","nested_tuple_indexing",null,"nested tuple indexing without parentheses (`tuple.0.0`)",null],["1.46","leading_ones","leading_trailing_ones","`leading_ones` integer methods",null],["1.46","track_caller","track_caller","the `#[track_caller]` attribute",2091],["1.46","vec_drain_as_slice","vec_drain_as_slice","`std::vec::Drain::as_slice`",null],["1.46","vec_intoiter_as_ref",null,"`AsRef<[T]>` implementation for `vec::IntoIter`",null],["1.46","vec_drain_as_ref",null,"`AsRef<[T]>` implementation for `vec::Drain<'_, T>`",null],["1.46","const_slice_cast",null,"array to slice casts and coercions in `const fn`",null],["1.46","trailing_ones","leading_trailing_ones","`trailing_ones` integer methods",null],["1.46","partialeq_vec_for_ref_slice","partialeq_vec_for_ref_slice","`PartialEq>` implementations for slices",null],["1.46","const_if_match","const_if_match","`if` and `match` in constant evaluation",2342],["1.46","option_zip","option_zip","`Option::zip`",null],["1.46","const_transmute","const_transmute","`mem::transmute` in constants",null],["1.46","const_loop","const_loop","`loop` and `while` in constant evaluation",2344],["1.46","const_forget","const_forget","`mem::forget` as `const fn`",null],["1.46","from_char_for_string",null,"`From` implementation for `String`",null],["1.3","duration","duration","`std::time::Duration`",null],["1.3","time","time","`std::time`",null],["1.16","self_struct_expr_pat",null,"`Self` in struct expressions and patterns",null],["1.16","assoc_ty_struct_expr_pat",null,"associated types in struct expressions and patterns",null],["1.16","writeln_no_args",null,"`writeln!` without arguments",null],["1.58","char_array_pattern",null,"`Pattern` implementation for `[char; N]`",null],["1.58","saturating_div","saturating_div","`{integer}::saturating_div`",null],["1.58","cstring_from_vec_with_nul_unchecked","cstring_from_vec_with_nul","`CString::from_vec_with_nul_unchecked`",null],["1.58","const_raw_ptr_deref","const_raw_ptr_deref","`*const T` dereferences in `const` contexts",null],["1.58","with_options","with_options","`File::options`",null],["1.58","cstring_from_vec_with_nul","cstring_from_vec_with_nul","`CString::from_vec_with_nul`",null],["1.58","is_symlink","is_symlink","`is_symlink` methods",null],["1.58","format_args_capture","format_args_capture","implicit named arguments for formatting macros",2795],["1.58","option_result_unwrap_unchecked","option_result_unwrap_unchecked","`unwrap_unchecked` methods",null],["1.49","nzint_try_from_nzint","nzint_try_from_nzint_conv","`TryFrom` conversions between `NonZero` integer types",null],["1.49","partialeq_slice_for_vec","partialeq_vec_for_slice","`impl PartialEq<[B]> for Vec where A: PartialEq`",null],["1.49","empty_enum_to_int",null,"uninhabited enum to integer casts",null],["1.49","const_poll_is_ready","const_poll","`Poll::is_ready` as `const fn`",null],["1.49","partialeq_vec_for_slice","partialeq_vec_for_slice","`impl PartialEq> for [A] where A: PartialEq`",null],["1.49","manually_drop_in_unions","untagged_unions","`ManuallyDrop` in `union`s",null],["1.49","move_ref_pattern","move_ref_pattern","move and reference bindings in the same match pattern",null],["1.49","const_poll_is_pending","const_poll","`Poll::is_pending` as `const fn`",null],["1.40","option_flattening","option_flattening","`Option::flatten`",null],["1.40","udpsocker_peer_addr","udp_peer_addr","`UdpSocket::peer_addr`",null],["1.40","proc_macro_generated_macro_rules",null,"proc-macros that generate `macro_rules!` macros",null],["1.40","macros_in_extern","macros_in_extern","macro invocations in `extern {}` blocks",null],["1.40","option_deref","option_deref","`as_deref` and `as_deref_mut` on `Option`",null],["1.40","cfg_doctest","cfg_doctest","`#[cfg(doctest)]`",null],["1.40","float_to_from_bytes","float_to_from_bytes","float ↔ bytes conversion functions",null],["1.40","const_is_power_of_two",null,"`is_power_of_two` as `const fn`",null],["1.40","slice_repeat","repeat_generic_slice","`slice::repeat`",null],["1.40","type_proc_macros",null,"function-like procedural macros in type position",null],["1.40","modern_meta_macro_pattern",null,"the `meta` fragment specifier in `macro_rules!` for modern attribute syntax",null],["1.40","todo_macro","todo_macro","`todo!`",null],["1.40","const_constructor","const_constructor","tuple struct and tuple variant constructors in `const fn`",null],["1.40","mem_take","mem_take","`mem::take`",null],["1.40","map_get_key_value","map_get_key_value","`get_key_value` on `HashMap` and `BTreeMap`",null],["1.40","non_exhaustive","non_exhaustive","`#![non_exhaustive]`",2008],["1.31","min_const_fn","min_const_fn","`const fn`",911],["1.31","tool_lints","tool_lints","scoped lints",null],["1.31","extern_crate_item_prelude","extern_crate_item_prelude","`extern crate foo as bar;`",null],["1.31","pattern_parentheses","pattern_parentheses","parentheses in patterns",null],["1.31","edition_2018",null,"the 2018 edition",null],["1.31","impl_header_lifetime_elision","impl_header_lifetime_elision","lifetime elision in `impl` headers",null],["1.22","drop_types_in_const","drop_types_in_const","`Drop` types in constants",1440],["1.62","bool_then_some","bool_to_option","`bool::then_some`",null],["1.62","stdlin_lines","stdin_forwarders","`Stdin::lines`",null],["1.62","derive_default_enum",null,"the `Default` derive macro on enums with a `#[default]` attribute",3107],["1.75","async_fn_in_trait",null,"`async fn` in traits",null],["1.75","return_position_impl_trait_in_trait",null,"return-position `impl Trait` in traits",null],["1.24","abi_sysv64","abi_sysv64","the sysV64 ABI on any platform",null],["1.24","unsized_ptr_is_null",null,"`is_null` on pointers to unsized types",null],["1.37","type_alias_enum_variants",null,"enum variants through a type alias",null],["1.37","generic_param_cfg_attrs",null,"conditional compilation of generic parameters",null],["1.37","option_xor","option_xor","`Option::xor`",null],["1.37","underscore_const_names","underscore_const_names","`_` as an identifier for constants",null],["1.37","copy_within","copy_within","`[T]::copy_within`",null],["1.37","reverse_bits","reverse_bits","`reverse_bits` integer methods",null],["1.37","repr_align_enum","repr_align_enum","`#[repr(align(N)]` on enums",null],["1.37","kleene_op_2015",null,"the `?` Kleene macro operator in the 2015 edition",null],["1.41","weak_counts","weak_counts","`Weak` count methods",null],["1.41","core_panic_info","core_panic_info","the `core::panic` module",null],["1.41","result_map_or","result_map_or","`Result::map_or`",null],["1.41","maybe_uninit_debug",null,"`Debug` implementation for `MaybeUninit`",null],["1.41","cfg_doc","doc_cfg","`#[cfg(doc)]`",null],["1.41","result_map_or_else","result_map_or_else","`Result::map_or_else`",null],["1.41","re_rebalance_coherence","re_rebalance_coherence","relaxed coherence rules",null],["1.32","boxed_slice_from_iter",null,"`FromIterator` implementation for `Box<[T]>`",null],["1.32","macro_at_most_once_rep","macro_at_most_once_rep","`?` as the Kleene \"at most one\" operator in `macro_rules!` in the 2018 edition",2298],["1.32","const_manually_drop_new","const_manually_drop","`ManuallyDrop::new` as `const fn`",null],["1.32","const_unsafe_cell_get","const_unsafecell_get","`UnsafeCell::get` as `const fn`",null],["1.32","dbg_macro","dbg_macro","`dbg!`",2361],["1.32","const_ipv6addr_new","const_ipv6","`Ipv6Addr::new` as `const fn`",null],["1.32","const_duration_subsec_millis","duration_consts","`Duration::subsec_millis` as `const fn`",null],["1.32","const_range_inclusive_end","const_inclusive_range_methods","`RangeInclusive::end` as `const fn`",null],["1.32","const_slice_as_ptr","const_slice_as_ptr","`slice::as_ptr` as `const fn`",null],["1.32","uniform_paths","uniform_paths","uniform paths (`use x::y;` as `use self::x::y;`) in the 2018 edition",null],["1.32","int_to_from_bytes","int_to_from_bytes","integer ↔ bytes conversion functions",null],["1.32","const_range_inclusive_start","const_inclusive_range_methods","`RangeInclusive::start` as `const fn`",null],["1.32","const_ipv4addr_is_unspecified","const_ipv4","`Ipv4Addr::is_unspecified` as `const fn`",null],["1.32","self_struct_ctor","self_struct_ctor","`Self` as a constructor and pattern for unit and tuple structs",2302],["1.32","const_manually_drop_into_inner","const_manually_drop","`ManuallyDrop::into_inner` as `const fn`",null],["1.32","const_str_as_ptr","const_str_as_ptr","`str::as_ptr` as `const fn`",null],["1.32","const_duration_as_secs","duration_consts","`Duration::as_secs` as `const fn`",null],["1.32","const_cell_as_ptr","const_cell_as_ptr","`Cell::as_ptr` as `const fn`",null],["1.32","self_in_typedefs","self_in_typedefs","`Self` in type definitions",2300],["1.32","const_duration_subsec_nanos","duration_consts","`Duration::subsec_nanos` as `const fn`",null],["1.32","const_non_null_as_ptr","const_nonnull_as_ptr","`NonNull::as_ptr` as `const fn`",null],["1.32","macro_literal_matcher","macro_literal_matcher","the `literal` fragment specifier in `macro_rules!`",1576],["1.32","const_cstr_as_ptr","const_str_as_ptr","`CStr::as_ptr` as `const fn`",null],["1.32","const_ipv6addr_octets","const_ipv6","`Ipv6Addr::octets` as `const fn`",null],["1.32","const_char_is_ascii","const_ascii_methods_on_intrinsics","`char::is_ascii` as `const fn`",null],["1.32","must_use_traits",null,"`#[must_use]` on traits",null],["1.32","const_iter_empty","const_iter_empty","`iter::empty` as `const fn`",null],["1.32","const_duration_subsec_micros","duration_consts","`Duration::subsec_micros` as `const fn`",null],["1.32","path_from_str",null,"`FromStr` implementation for `PathBuf`",null],["1.56","const_fn_transmute","const_fn_transmute","`mem::transmute` in `const fn`",null],["1.56","io_sink_copy",null,"`Copy` implementation for `io::Sink`",null],["1.56","io_empty_default",null,"`Default` implementation for `io::Empty`",null],["1.56","shrink_to","shrink_to","the `shrink_to` method on collections",null],["1.56","io_empty_copy",null,"`Copy` implementation for `io::Empty`",null],["1.56","bufwriter_into_parts","bufwriter_into_parts","`BufWriter::into_parts`",null],["1.56","rust_version",null,"`rust-version` in Cargo.toml",2495],["1.56","extend_for_tuple",null,"`Extend` implementation for `(Extend, Extend)`",null],["1.56","std_collections_from_array",null,"`From<[T; N]>` implementation for collections",null],["1.56","const_fn_union","const_fn_union","`union` field access in `const fn`",null],["1.56","unsafe_cell_raw_get","unsafe_cell_raw_get","`UnsafeCell::raw_get`",null],["1.56","io_empty_clone",null,"`Clone` implementation for `io::Empty`",null],["1.56","unix_chroot","unix_chroot","`std::os::unix::fs::chroot`",null],["1.56","io_sink_clone",null,"`Clone` implementation for `io::Sink`",null],["1.56","io_sink_default",null,"`Default` implementation for `io::Sink`",null],["1.14","println_no_args",null,"`println!` without arguments",null],["1.14","dotdot_in_tuple_patterns","dotdot_in_tuple_patterns","`..` in tuple (struct) patterns",1492],["1.14","fn_ptr_to_unsafe_fn_ptr",null,"`fn` pointer to `unsafe fn` pointer coercion",null],["1.59","hashmap_vacant_entry_insert","entry_insert","`hash_map::VacantEntry::insert_entry`",null],["1.59","thread_local_const_init","thread_local_const_init","const-initialized thread locals",null],["1.59","hashmap_entry_insert","entry_insert","`hash_map::Entry::insert_entry`",null],["1.59","const_maybe_uninit_assume_init","const_maybe_uninit_assume_init","`MaybeUninit::assume_init` as `const fn`",null],["1.59","iter_zip","iter_zip","`core::iter::zip`",null],["1.59","control_flow_is_break","control_flow_enum","`ControlFlow::is_break`",null],["1.59","available_parallelism","available_parallelism","`std::thread::available_parallelism`",null],["1.59","asm","asm","inline assembly",null],["1.59","result_copied_err","result_cloned","`Result::cloned_err`",null],["1.59","result_cloned","result_cloned","`Result::cloned`",null],["1.59","const_generics_defaults","const_generics_defaults","defaults for const generics",null],["1.59","u8_from_char",null,"`TryFrom` implementation for `u8`",null],["1.59","control_flow_is_continue","control_flow_enum","`ControlFlow::is_continue`",null],["1.59","result_copied","result_copied","`Result::copied`",null],["1.59","const_maybe_uninit_assume_init_ref","const_maybe_uninit_assume_init","`MaybeUninit::assume_init_ref` as `const fn`",null],["1.59","const_maybe_uninit_as_ptr","const_maybe_uninit_as_ptr","`MaybeUninit::as_ptr` as `const fn`",null],["1.59","result_cloned_err","result_copied","`Result::copied_err`",null],["1.59","const_cstr_unchecked","const_cstr_unchecked","`CStr::from_bytes_with_nul_unchecked` as `const fn`",null],["1.59","const_unreachable_unchecked","const_unreachable_unchecked","`unreachable_unchecked` as `const fn`",null],["1.2","iter_once","iter_once","`iter::once`",null],["1.2","iter_empty","iter_empty","`iter::empty`",null],["1.2","atomic_ptr_send",null,"`Send` implementation for `AtomicPtr`",null],["1.68","const_vecdeque_new","const_vec_deque_new","`VecDeque::new` as `const fn`",null],["1.68","main_separator_str","main_separator_str","`std::path::MAIN_SEPARATOR_STR`",null],["1.68","efiapi","abi_efiapi","`efiapi` calling convention",null],["1.68","pin_macro","pin_macro","`std::pin::pin!`",null],["1.68","float_from_bool","float_from_bool","`From implementation for floats",null],["1.68","path_buf_deref_mut","path_buf_deref_mut","`DerefMut` implementation for `PathBuf`",null]];export default caniuseIndex; \ No newline at end of file +const caniuseIndex=[["1.47","tau_constant","tau_constant","the `TAU` constant",null],["1.47","result_deref","inner_deref","`as_deref` and `as_deref_mut` on `Result`",null],["1.47","range_full_default",null,"`Default` implementation for `RangeFull`",null],["1.47","array_gt_32_impls",null,"`[T; N]` trait implementations with N > 32",null],["1.47","range_default",null,"`Default` implementation for `Range`",null],["1.47","const_type_id","const_type_id","`TypeId::of` in `const fn`",null],["1.47","vec_leak","vec_leak","`Vec::leak`",null],["1.47","cstr_range_from",null,"`Index` implementation for `CStr`",null],["1.47","proc_macro_raw_ident","proc_macro_raw_ident","`proc_macro::Ident::new_raw`",null],["1.18","windows_subsystem","windows_subsystem","`#![windows_subsystem]`",null],["1.18","pub_restricted","pub_restricted","`pub(restricted)` visibilities",1422],["1.5","fs_canonicalize","fs_canonicalize","`fs::canonicalize`",1044],["1.5","vec_resize","vec_resize","`Vec::resize`",509],["1.6","no_std","no_std","`#![no_std]`",null],["1.52","str_split_once","str_split_once","`str::split_once`",null],["1.52","const_u8_to_ascii_lowercase","const_ascii_methods_on_intrinsics","`u8::to_ascii_lowercase` as `const fn`",null],["1.52","const_char_to_ascii_uppercase","const_ascii_methods_on_intrinsics","`char::to_ascii_uppercase` as `const fn`",null],["1.52","const_char_eq_ignore_ascii_case","const_ascii_methods_on_intrinsics","`char::eq_ignore_ascii_case` as `const fn`",null],["1.52","const_u8_to_ascii_uppercase","const_ascii_methods_on_intrinsics","`u8::to_ascii_uppercase` as `const fn`",null],["1.52","const_u8_eq_ignore_ascii_case","const_ascii_methods_on_intrinsics","`u8::eq_ignore_ascii_case` as `const fn`",null],["1.52","const_char_len_utf8","const_char_len_utf","`char::len_utf8` as `const fn`",null],["1.52","char_partial_eq_punct",null,"`PartialEq` implementation for `char`",null],["1.52","str_rsplit_once","str_split_once","`str::rsplit_once`",null],["1.52","const_char_len_utf16","const_char_len_utf","`char::len_utf16` as `const fn`",null],["1.52","const_char_to_ascii_lowercase","const_ascii_methods_on_intrinsics","`char::to_ascii_lowercase` as `const fn`",null],["1.52","arc_error",null,"`Error` implementation for `Arc`",null],["1.37","kleene_op_2015",null,"the `?` Kleene macro operator in the 2015 edition",null],["1.37","option_xor","option_xor","`Option::xor`",null],["1.37","generic_param_cfg_attrs",null,"conditional compilation of generic parameters",null],["1.37","underscore_const_names","underscore_const_names","`_` as an identifier for constants",null],["1.37","type_alias_enum_variants",null,"enum variants through a type alias",null],["1.37","reverse_bits","reverse_bits","`reverse_bits` integer methods",null],["1.37","copy_within","copy_within","`[T]::copy_within`",null],["1.37","repr_align_enum","repr_align_enum","`#[repr(align(N)]` on enums",null],["1.55","bound_cloned","bound_cloned","`Bound::cloned`",null],["1.55","control_flow","control_flow_enum_type","the `ControlFlow` enum",null],["1.55","array_map","array_map","`[T; N]::map`",null],["1.55","proc_macro_group_span_close","proc_macro_group_span","`Group::span_close`",null],["1.55","range_from_patterns","half_open_range_patterns","\"RangeFrom\" patterns (`a..`)",null],["1.55","proc_macro_group_span_open","proc_macro_group_span","`Group::span_open`",null],["1.55","maybe_uninit_write","maybe_uninit_write","`MaybeUninit::write`",null],["1.14","fn_ptr_to_unsafe_fn_ptr",null,"`fn` pointer to `unsafe fn` pointer coercion",null],["1.14","println_no_args",null,"`println!` without arguments",null],["1.14","dotdot_in_tuple_patterns","dotdot_in_tuple_patterns","`..` in tuple (struct) patterns",1492],["1.38","duration_from_secs_f64","duration_float","`Duration::from_secs_f64`",null],["1.38","duration_div_f64","duration_float","`Duration::div_f64`",null],["1.38","ascii_escapedefault_display",null,"`Display` implementation for `ascii::EscapeDefault`",null],["1.38","thread_accesserror_eq",null,"`Eq` implementation for `thread::AccessError`",null],["1.38","str_chars_debug",null,"`Debug` implementation for `std::str::Chars`",null],["1.38","shared_from_iter",null,"`FromIterator` implementation for `Rc` and `Arc`",null],["1.38","duration_mul_f32","duration_float","`Duration::mul_f32`",null],["1.38","duration_from_secs_f32","duration_float","`Duration::from_secs_f32`",null],["1.38","deprecated_macros",null,"`#[deprecated]` on macros",null],["1.38","thread_accesserror_clone",null,"`Clone` implementation for `thread::AccessError`",null],["1.38","duration_div_f32","duration_float","`Duration::div_f32`",null],["1.38","unpin_ptr","duration_float","`Unpin` implementations for pointers",null],["1.38","ascii_escapedefault_clone",null,"`Clone` implementation for `ascii::EscapeDefault`",null],["1.38","duration_as_secs_f32","duration_float","`Duration::as_secs_f32`",null],["1.38","iter_take_double_ended",null,"`DoubleEndedIterator` implementation for `iter::Take`",null],["1.38","iter_step_by_double_ended",null,"`DoubleEndedIterator` implementation for `iter::StepBy`",null],["1.38","duration_mul_f64","duration_float","`Duration::mul_f64`",null],["1.38","any_type_name","type_name","`any::type_name`",null],["1.38","iter_peekable_double_ended",null,"`DoubleEndedIterator` implementation for `iter::Peekable`",null],["1.38","global_allocator_in_submodules",null,"`#[global_allocator]` inside submodules",null],["1.38","ptr_cast","ptr_cast","`cast` method on pointers",null],["1.38","thread_accesserror_error",null,"`Error` implementation for `thread::AccessError`",null],["1.38","thread_accesserror_copy",null,"`Copy` implementation for `thread::AccessError`",null],["1.38","duration_as_secs_f64","duration_float","`Duration::as_secs_f64`",null],["1.38","euclidean_division","euclidean_division","euclidean division & modulo",null],["1.38","thread_accesserror_partialeq",null,"`PartialEq` implementation for `thread::AccessError`",null],["1.17","where_clauses_with_self",null,"`Self` in the where clause of trait impl's",1647],["1.17","static_in_const","static_in_const","elision of `'static` lifetimes in `static`s and `const`s",1623],["1.17","cell_non_copy","cell_non_copy","`Cell` with non-`Copy` types",1651],["1.17","field_init_shorthand","field_init_shorthand","field init shorthands (`x` for `x: x` in struct initializers)",1682],["1.17","static_recursion","static_recursion","recursive static items",null],["1.3","time","time","`std::time`",null],["1.3","duration","duration","`std::time::Duration`",null],["1.25","repr_align","repr_align","`#[repr(align(N))]`",1358],["1.25","match_beginning_vert","match_beginning_vert","`|` at the beginning of match arms",1925],["1.25","use_nested_groups","use_nested_groups","nested groups in imports",2128],["1.41","core_panic_info","core_panic_info","the `core::panic` module",null],["1.41","cfg_doc","doc_cfg","`#[cfg(doc)]`",null],["1.41","maybe_uninit_debug",null,"`Debug` implementation for `MaybeUninit`",null],["1.41","re_rebalance_coherence","re_rebalance_coherence","relaxed coherence rules",null],["1.41","result_map_or_else","result_map_or_else","`Result::map_or_else`",null],["1.41","result_map_or","result_map_or","`Result::map_or`",null],["1.41","weak_counts","weak_counts","`Weak` count methods",null],["1.8","braced_empty_structs","braced_empty_structs","empty structs and enum variants with braces",218],["1.8","augmented_assignments","augmented_assignments","assignment operator overloading",null],["1.57","array_as_slice","array_as_slice","`<[T; N]>::as_slice`",null],["1.57","vec_try_reserve_exact","try_reserve","`Vec::try_reserve_exact`",null],["1.57","const_panic","const_panic","panicking in `const` contexts",null],["1.57","array_as_mut_slice","array_as_slice","`<[T; N]>::as_mut_slice`",null],["1.57","string_try_reserve","try_reserve","`String::try_reserve`",null],["1.57","string_try_reserve_exact","try_reserve","`String::try_reserve_exact`",null],["1.57","vecdeque_try_reserve","try_reserve","`VecDeque::try_reserve`",null],["1.57","proc_macro_is_available","proc_macro_is_available","`proc_macro::is_available`",null],["1.57","hashset_try_reserve","try_reserve","`HashSet::try_reserve`",null],["1.57","iter_map_while","iter_map_while","`Iterator::map_while`",null],["1.57","hashmap_try_reserve","try_reserve","`HashMap::try_reserve`",null],["1.57","macro_attrs_in_derive_output","macro_attributes_in_derive_output","attribute macros after derive macros, on the same item",null],["1.57","vecdeque_try_reserve_exact","try_reserve","`VecDeque::try_reserve_exact`",null],["1.57","vec_try_reserve","try_reserve","`Vec::try_reserve`",null],["1.51","array_value_iter","array_value_iter","by-value `[T; N]` iterator `core::array::IntoIter`",null],["1.51","slice_strip_prefix","slice_strip","`slice::strip_prefix`",null],["1.51","empty_seek",null,"`io::Seek` implementation for `io::Empty`",null],["1.51","nonzero_rem",null,"`Rem` implementation for `u{0}`",null],["1.51","str_as_mut",null,"`AsMut` implementation for `str`",null],["1.51","unsigned_abs","unsigned_abs","the `unsigned_abs` method on signed integers",null],["1.51","arc_decrement_strong_count","arc_mutate_strong_count","`Arc::decrement_strong_count`",null],["1.51","poll_map_ok","poll_map","`Poll>>::map_ok`",null],["1.51","slice_strip_suffix","slice_strip","`slice::strip_suffix`",null],["1.51","seek_stream_position","seek_convenience","`io::Seek::stream_position`",null],["1.51","error_by_ref",null,"`Error` implementation for `&(impl Error)`",null],["1.51","min_const_generics","min_const_generics","simple const generics",null],["1.51","wake_trait","wake_trait","the `Wake` trait",null],["1.51","iterator_reduce","iterator_fold_self","`Iterator::reduce`",null],["1.51","arc_increment_strong_count","arc_mutate_strong_count","`Arc::increment_strong_count`",null],["1.51","poll_map_err","poll_map","`Poll>>::map_err`",null],["1.51","slice_fill_with","slice_fill_with","`slice::fill_with`",null],["1.51","box_send_sync_any_downcast","box_send_sync_any_downcast","`Box::::downcast`",null],["1.51","nonzero_div",null,"`Div` implementation for `u{0}`",null],["1.29","proc_macro","proc_macro","procedural macros",null],["unstable","exhaustive_patterns","exhaustive_patterns","exhaustive pattern matching on types that contain uninhabited types",1872],["unstable","exclusive_range_pattern","exclusive_range_pattern","exclusive range patterns (`a..b`)",null],["unstable","slice_take","slice_take","`take` method family on slices",null],["unstable","const_ptr_write_unaligned","const_ptr_write","pointer `write_unaligned` as `const fn`",null],["unstable","btreemap_try_insert","map_try_insert","`BTreeMap::try_insert`",null],["unstable","no_core","no_core","`#![no_core]`",null],["unstable","generators","generators","generators",2033],["unstable","proc_macro_diagnostics","proc_macro_diagnostics","procedural macro diagnostics",null],["unstable","link_args","link_args","`#[link_args]`",null],["unstable","cfg_target_has_atomic","cfg_target_has_atomic","`cfg(target_has_atomic = ...)`",null],["unstable","pub_macro_rules","pub_macro_rules","module scoping for `macro_rules!` macros",null],["unstable","is_sorted_slice","is_sorted","`is_sorted` method family on slices",2351],["unstable","const_io_cursor_get_ref","const_io_structs","`io::Cursor::get_ref` as `const fn`",null],["unstable","const_mut_refs","const_mut_refs","`&mut T` in `const` contexts",null],["unstable","associated_type_defaults","associated_type_defaults","default values for associated types",null],["unstable","const_io_empty","const_io_structs","`io::empty` as `const fn`",null],["unstable","custom_inner_attributes","custom_inner_attributes","custom inner attributes",null],["unstable","is_sorted_iterator","is_sorted","`is_sorted` method family on `Iterator`",2351],["unstable","const_io_cursor_new","const_io_structs","`io::Cursor::new` as `const fn`",null],["unstable","linkedlist_drain_filter","drain_filter","`LinkedList:::drain_filter`",null],["unstable","termination_trait_lib",null,"`Termination` implementation for `Result`",null],["unstable","assert_matches","assert_matches","`assert_matches!`",null],["unstable","hashmap_try_insert","map_try_insert","`HashMap::try_insert`",null],["unstable","try_trait_v2","try_trait_v2","the `Try` trait",3058],["unstable","total_cmp","total_cmp","the `total_cmp` method on float types",null],["unstable","cfg_version","cfg_version","`#[cfg(version(..))]`",null],["unstable","const_in_array_repeat_expressions","const_in_array_repeat_expressions","constants in array repeat expressions",2203],["unstable","box_into_boxed_slice","box_into_boxed_slice","`Box::into_boxed_slice`",null],["unstable","iterator_intersperse_with","iter_intersperse","`Iterator::intersperse_with`",null],["unstable","const_generics","const_generics","const generics",2000],["unstable","never_type","never_type","the never type (`!`)",null],["unstable","raw_ref_op","raw_ref_op","the raw reference operator (`&raw [mut | const] $place`)",2582],["unstable","cow_is_borrowed","cow_is_borrowed","`Cow::is_borrowed`",null],["unstable","type_alias_impl_trait","type_alias_impl_trait","`impl Trait` in type aliases",2515],["unstable","abi_thiscall","abi_thiscall","`thiscall` calling convention",null],["unstable","vec_drain_filter","drain_filter","`Vec:::drain_filter`",null],["unstable","plugin","plugin","`#![plugin(...)]`",null],["unstable","derive_default_enum","derive_default_enum","`#[derive(Default)]` on enums",null],["unstable","stmt_expr_attributes","stmt_expr_attributes","attributes on expressions",16],["unstable","slice_ptr_len","slice_ptr_len","the `len` method on raw slices",null],["unstable","cow_is_owned","cow_is_borrowed","`Cow::is_owned`",null],["unstable","const_ptr_write","const_ptr_write","pointer `write` as `const fn`",null],["unstable","option_zip_with","option_zip","`Option::zip_with`",null],["unstable","const_io_sink","const_io_structs","`io::sink` as `const fn`",null],["unstable","thread_local","thread_local","`#[thread_local]` on `static`s",null],["unstable","specialization","specialization","specialization",null],["unstable","default_free_fn","default_free_fn","the free `default` function (shorthand for `Default::default`)",null],["unstable","duration_checked_float","duration_checked_float","`Duration::try_from_secs_*`",null],["unstable","nonzero_is_power_of_two","nonzero_is_power_of_two","`NonZeroU*::is_power_of_two`",null],["unstable","iterator_intersperse","iter_intersperse","`Iterator::intersperse`",null],["unstable","plugin_registrar","plugin_registrar","`#[plugin_registrar]`",null],["unstable","let_chains","let_chains","if- and while-let-chains",null],["unstable","naked_functions","naked_functions","`#[naked]` functions",null],["unstable","half_open_range_patterns","half_open_range_patterns","half-open range patterns",null],["unstable","const_io_cursor_position","const_io_structs","`io::Cursor::position` as `const fn`",null],["unstable","bound_as_mut","bound_as_ref","`ops::Bound::as_mut`",null],["unstable","nonnull_slice_from_raw_parts","nonnull_slice_from_raw_parts","`NonNull<[T]>::slice_from_raw_parts`",null],["unstable","link_cfg","link_cfg","`#[link(..., cfg(...))]`",null],["unstable","register_tool","register_tool","`#![register_tool]`",null],["unstable","const_io_repeat","const_io_structs","`io::repeat` as `const fn`",null],["unstable","try_blocks","try_blocks","`try` blocks",243],["1.1","split_whitespace","split_whitespace","`str::split_whitespace`",1054],["1.7","string_as_str","string_as_str","`String::as_str`",null],["1.7","vec_as_slice","vec_as_slice","`Vec::as_slice`",null],["1.7","vec_as_mut_slice","vec_as_slice","`Vec::as_mut_slice`",null],["1.7","string_as_mut_str","string_as_str","`String::as_mut_str`",null],["1.11","nested_cfg_attr",null,"nested `cfg_attr` attributes",null],["1.15","proc_macro_derive","proc_macro","procedural derive macros (macros 1.1)",1681],["1.75","return_position_impl_trait_in_trait",null,"return-position `impl Trait` in traits",null],["1.75","async_fn_in_trait",null,"`async fn` in traits",null],["1.39","const_linkedlist_new","const_linked_list_new","`LinkedList::new` as `const fn`",null],["1.39","const_vec_new","const_vec_new","`Vec::new` as `const fn`",null],["1.39","param_attrs","param_attrs","attributes on function parameters",null],["1.39","instant_saturating_duration_since","checked_duration_since","`Instant::saturating_duration_since`",null],["1.39","const_string_new","const_string_new","`String::new` as `const fn`",null],["1.39","await","async_await","`.await`",null],["1.39","instant_checked_duration_since","checked_duration_since","`Instant::checked_duration_since`",null],["1.39","async","async_await","`async`",null],["1.39","pin_into_inner","pin_into_inner","`Pin::into_inner`",null],["1.39","const_str_as_bytes",null,"`str::as_bytes` as `const fn`",null],["1.39","const_str_len","const_str_len","`str::len` as `const fn`",null],["1.39","const_slice_len","const_slice_len","`[T]::len` as `const fn`",null],["1.39","bind_by_move_pattern_guards","bind_by_move_pattern_guards","shared references to bind-by-move patterns in `match` arms' guards",null],["1.62","stdlin_lines","stdin_forwarders","`Stdin::lines`",null],["1.62","bool_then_some","bool_to_option","`bool::then_some`",null],["1.62","derive_default_enum",null,"the `Default` derive macro on enums with a `#[default]` attribute",3107],["1.63","const_slice_from_ref",null,"`slice::from_ref` as `const fn`",null],["1.63","toowned_clone_into","toowned_clone_into","`ToOwned::clone_into`",null],["1.63","ref_filter_map","cell_filter_map","`cell::Ref::filter_map`",null],["1.63","const_rwlock_new",null,"`RwLock::new` as `const fn`",null],["1.63","vecdeque_read",null,"`io::Read` implementation for `VecDeque`",null],["1.63","pathbuf_try_reserve_exact","try_reserve_2","`PathBuf::try_reserve_exact`",null],["1.63","refmut_filter_map","cell_filter_map","`cell::RefMut::filter_map`",null],["1.63","osstring_try_reserve_exact","try_reserve_2","`OsString::try_reserve_exact`",null],["1.63","nonzero_checked_ops","nonzero_checked_ops","checked numeric operations for `NonZero*`",null],["1.63","scoped_threads","scoped_threads","scoped threads",3151],["1.63","path_try_exists",null,"`Path::try_exists`",null],["1.63","binaryheap_try_reserve_exact","try_reserve_2","`BinaryHeap::try_reserve_exact`",null],["1.63","box_into_pin","box_into_pin","`Box::into_pin`",null],["1.63","binaryheap_try_reserve","try_reserve_2","`BinaryHeap::try_reserve`",null],["1.63","explicit_generic_args_with_impl_trait","explicit_generic_args_with_impl_trait","turbofish syntax on generic functions with an `impl Trait` argument",null],["1.63","nonnull_slice_ptr_len",null,"`NonNull<[T]>::len`",null],["1.63","const_array_from_ref",null,"`array::from_ref` as `const fn`",null],["1.63","pathbuf_try_reserve","try_reserve_2","`PathBuf::try_reserve`",null],["1.63","array_from_fn","array_from_fn","`array::from_fn`",null],["1.63","const_mutex_new",null,"`Mutex::new` as `const fn`",null],["1.63","osstring_try_reserve","try_reserve_2","`OsString::try_reserve`",null],["1.63","vecdeque_write",null,"`io::Write` implementation for `VecDeque`",null],["1.63","const_condvar_new",null,"`Condvar::new` as `const fn`",null],["1.64","future_poll_fn","future_poll_fn","`core::future::poll_fn`",null],["1.64","arc_asfd",null,"`AsFd` implementation for `Arc`",null],["1.64","core_ffi_c","core_ffi_c","type aliases for C's arithmetic types in `core::ffi`",null],["1.64","ready_macro","ready_macro","`task::ready!`",null],["1.64","box_asfd",null,"`AsFd` implementation for `Box`",null],["1.64","core_cstr","core_c_str","`CStr` in `core`",null],["1.64","into_future","into_future","the `IntoFuture` trait",null],["1.64","cargo_workspace_inheritance",null,"Cargo workspace inheritance",2906],["1.64","alloc_cstr","alloc_c_str","`CString` in `alloc`",null],["1.64","windows_filetypeext",null,"`std::os::windows::fs::FileTypeExt`",null],["1.0","macro_rules","macro_rules","`macro_rules!`",null],["1.0","tuple_indexing","tuple_indexing","tuple indexing",null],["1.0","struct_variant","struct_variant","struct variants in enums",null],["1.0","associated_types","associated_types","associated types in traits",null],["1.0","default_type_params","default_type_params","type parameter defaults",null],["1.0","while_let","while_let","`while let` expressions",null],["1.0","if_let","if_let","`if let` expressions",null],["1.0","slicing_syntax","slicing_syntax","`&foo[a..b]` as slicing syntax",null],["1.34","deprecated_equals_reason",null,"`#[deprecated = \"reason\"]` as a shorthand for `#[deprecated(note = \"reason\")]`",null],["1.34","alternative_registries",null,"alternative registries to crates.io in cargo",null],["1.34","const_overflowing_neg",null,"`overflowing_neg` as `const fn`",null],["1.34","extern_crate_self","extern_crate_self","`extern crate self as foo;`",null],["1.34","unrestricted_attribute_tokens","unrestricted_attribute_tokens","arbitrary token streams in procedural attribute macros",null],["1.34","const_wrapping_neg",null,"`wrapping_neg` as `const fn`",null],["1.59","result_copied","result_copied","`Result::copied`",null],["1.59","result_cloned","result_cloned","`Result::cloned`",null],["1.59","iter_zip","iter_zip","`core::iter::zip`",null],["1.59","const_maybe_uninit_assume_init","const_maybe_uninit_assume_init","`MaybeUninit::assume_init` as `const fn`",null],["1.59","const_maybe_uninit_assume_init_ref","const_maybe_uninit_assume_init","`MaybeUninit::assume_init_ref` as `const fn`",null],["1.59","u8_from_char",null,"`TryFrom` implementation for `u8`",null],["1.59","result_copied_err","result_cloned","`Result::cloned_err`",null],["1.59","control_flow_is_break","control_flow_enum","`ControlFlow::is_break`",null],["1.59","available_parallelism","available_parallelism","`std::thread::available_parallelism`",null],["1.59","const_cstr_unchecked","const_cstr_unchecked","`CStr::from_bytes_with_nul_unchecked` as `const fn`",null],["1.59","hashmap_vacant_entry_insert","entry_insert","`hash_map::VacantEntry::insert_entry`",null],["1.59","const_maybe_uninit_as_ptr","const_maybe_uninit_as_ptr","`MaybeUninit::as_ptr` as `const fn`",null],["1.59","asm","asm","inline assembly",null],["1.59","result_cloned_err","result_copied","`Result::copied_err`",null],["1.59","const_unreachable_unchecked","const_unreachable_unchecked","`unreachable_unchecked` as `const fn`",null],["1.59","control_flow_is_continue","control_flow_enum","`ControlFlow::is_continue`",null],["1.59","const_generics_defaults","const_generics_defaults","defaults for const generics",null],["1.59","thread_local_const_init","thread_local_const_init","const-initialized thread locals",null],["1.59","hashmap_entry_insert","entry_insert","`hash_map::Entry::insert_entry`",null],["1.40","const_is_power_of_two",null,"`is_power_of_two` as `const fn`",null],["1.40","const_constructor","const_constructor","tuple struct and tuple variant constructors in `const fn`",null],["1.40","slice_repeat","repeat_generic_slice","`slice::repeat`",null],["1.40","non_exhaustive","non_exhaustive","`#![non_exhaustive]`",2008],["1.40","type_proc_macros",null,"function-like procedural macros in type position",null],["1.40","float_to_from_bytes","float_to_from_bytes","float ↔ bytes conversion functions",null],["1.40","todo_macro","todo_macro","`todo!`",null],["1.40","option_flattening","option_flattening","`Option::flatten`",null],["1.40","option_deref","option_deref","`as_deref` and `as_deref_mut` on `Option`",null],["1.40","mem_take","mem_take","`mem::take`",null],["1.40","macros_in_extern","macros_in_extern","macro invocations in `extern {}` blocks",null],["1.40","proc_macro_generated_macro_rules",null,"proc-macros that generate `macro_rules!` macros",null],["1.40","modern_meta_macro_pattern",null,"the `meta` fragment specifier in `macro_rules!` for modern attribute syntax",null],["1.40","cfg_doctest","cfg_doctest","`#[cfg(doctest)]`",null],["1.40","udpsocker_peer_addr","udp_peer_addr","`UdpSocket::peer_addr`",null],["1.40","map_get_key_value","map_get_key_value","`get_key_value` on `HashMap` and `BTreeMap`",null],["1.4","use_group_renaming",null,"item renamings in import groups",null],["1.30","raw_identifiers","raw_identifiers","raw identifiers (`r#keyword`)",null],["1.30","panic_handler","panic_handler","`#[panic_handler]`",null],["1.30","attr_literals","attr_literals","non-string literals in attribute lists and values of key-value pairs",null],["1.30","used","used","`#[used]`",null],["1.30","infer_outlives_requirements","infer_outlives_requirements","outlives requirement inference",2093],["1.30","proc_macro_path_invoc","proc_macro_path_invoc","multi-segment paths in attributes and derives",null],["1.30","non_modrs_mods","non_modrs_mods","`foo.rs` as an alternative to `foo/mod.rs`",null],["1.30","crate_in_paths","crate_in_paths","`crate` in paths",null],["1.30","extern_absolute_paths","extern_absolute_paths","absolute paths as paths from other crates",null],["1.30","tool_attributes","tool_attributes","tool-scoped attributes",null],["1.30","use_extern_macro","use_extern_macro","macro imports and reexports via the module system",null],["1.30","macro_vis_matcher","macro_vis_matcher","the `vis` fragment specifier in `macro_rules!`",null],["1.2","atomic_ptr_send",null,"`Send` implementation for `AtomicPtr`",null],["1.2","iter_once","iter_once","`iter::once`",null],["1.2","iter_empty","iter_empty","`iter::empty`",null],["1.26","copy_closures",null,"`Copy` implementation for applicable closures",2132],["1.26","dotdoteq_in_patterns","dotdoteq_in_patterns","inclusive ranges in patterns",1192],["1.26","conservative_impl_trait","conservative_impl_trait","`impl Trait` in function return types",null],["1.26","i128_type","i128_type","128 bit integer types",null],["1.26","const_indexing","const_indexing","array indexing in constants",null],["1.26","match_default_bindings","match_default_bindings","default match binding modes",2005],["1.26","underscore_lifetimes","underscore_lifetimes","placeholder lifetimes (`'_`)",2115],["1.26","inclusive_range_syntax","inclusive_range_syntax","inclusive range syntax",1192],["1.26","universal_impl_trait","universal_impl_trait","`impl Trait` in function arguments",null],["1.26","termination_trait","termination_trait","types implementing `Termination` as the return type for `fn main()`",null],["1.26","clone_closures",null,"`Clone` implementation for applicable closures",2132],["1.68","const_vecdeque_new","const_vec_deque_new","`VecDeque::new` as `const fn`",null],["1.68","pin_macro","pin_macro","`std::pin::pin!`",null],["1.68","efiapi","abi_efiapi","`efiapi` calling convention",null],["1.68","main_separator_str","main_separator_str","`std::path::MAIN_SEPARATOR_STR`",null],["1.68","float_from_bool","float_from_bool","`From implementation for floats",null],["1.68","path_buf_deref_mut","path_buf_deref_mut","`DerefMut` implementation for `PathBuf`",null],["1.45","box_from_cow","box_from_cow","`From>` implementations for `Box`ed types",null],["1.45","btreemap_remove_entry","btreemap_remove_entry","`BTreeMap::remove_entry`",null],["1.45","proc_macro_span_mixed_site","proc_macro_mixed_site","`proc_macro::Span::mixed_site`",null],["1.45","unicode_version","unicode_version","`std::char::UNICODE_VERSION`",null],["1.45","arc_from_cow",null,"`From>` implementation for `Arc`",null],["1.45","atomic_min_max","atomic_min_max","`AtomicN::{fetch_min, fetch_max}`",null],["1.45","rc_from_cow",null,"`From>`` implementation for ``Rc`",null],["1.45","expr_proc_macro","proc_macro_hygiene","function-like procedural macros in expression, pattern and statement position",null],["1.45","proc_macro_span_resolved_at","proc_macro_span_resolved_at","`proc_macro::Span::resolved_at`",null],["1.45","atomic_fetch_update","no_more_cas","`AtomicN::fetch_update`",null],["1.45","nonzero_bitor","nonzero_bitor","`BitOr` implementations for `NonZero` integer types",null],["1.45","proc_macro_span_located_at","proc_macro_span_located_at","`proc_macro::Span::located_at`",null],["1.45","nonzero_bitor_assign","nonzero_bitor","`BitOrAssign` implementations for `NonZero` integer types",null],["1.27","cfg_target_feature","cfg_target_feature","`#[cfg(target_feature = \"...\")]`",null],["1.27","macro_lifetime_matcher","macro_lifetime_matcher","the `lifetime` fragment specifier in `macro_rules!`",null],["1.27","fn_must_use","fn_must_use","`#[must_use]` on functions",1940],["1.27","generic_param_attrs","generic_param_attrs","attributes on generic parameters",1327],["1.27","target_feature",null,"`#[target_feature(...)]`",null],["1.27","proc_ident",null,"`proc` as an identifier",null],["1.27","termination_trait_test","termination_trait_test","types implementing `Termination` as the return type for `#[test]`s",null],["1.27","dyn_trait","dyn_trait","`dyn Trait` as a syntax for trait objects",null],["1.70","concat_negative_lit",null,"negative literals in `concat!`",null],["1.70","once_cell",null,"`OnceCell`",2788],["1.70","once_lock",null,"`OnceLock`",2788],["1.70","result_is_err_and",null,"`Result::is_err_and`",null],["1.70","result_is_ok_and",null,"`Result::is_ok_and`",null],["1.70","atomic_as_ptr",null,"`as_ptr` method for atomics",null],["1.70","option_is_some_and",null,"`Option::is_some_and`",null],["1.12","cfg_attr_path",null,"`cfg_attr` on `path` attributes",null],["1.12","nested_macro_rules",null,"`macro_rules!` within `macro_rules!`",null],["1.35","asraw_stdio_locks",null,"`AsRawFd` implementation for `StdinLock`, `StdoutLock` and `StderrLock`",null],["1.35","boxed_closure_impls","boxed_closure_impls","boxed closure `Fn*` trait implementations",null],["1.35","coerce_closure_to_unsafe_fn_ptr",null,"closure to unsafe function pointer coercions",null],["1.35","exact_size_case_mapping_iter",null,"`ExactSizeIterator` implementation for `ToLowercase` and `ToUppercase`",null],["1.35","alloc_system_default",null,"`Default` implementation for `alloc::System`",null],["1.35","dbg_no_args",null,"`dbg!` without arguments",null],["1.58","char_array_pattern",null,"`Pattern` implementation for `[char; N]`",null],["1.58","format_args_capture","format_args_capture","implicit named arguments for formatting macros",2795],["1.58","option_result_unwrap_unchecked","option_result_unwrap_unchecked","`unwrap_unchecked` methods",null],["1.58","const_raw_ptr_deref","const_raw_ptr_deref","`*const T` dereferences in `const` contexts",null],["1.58","cstring_from_vec_with_nul_unchecked","cstring_from_vec_with_nul","`CString::from_vec_with_nul_unchecked`",null],["1.58","with_options","with_options","`File::options`",null],["1.58","cstring_from_vec_with_nul","cstring_from_vec_with_nul","`CString::from_vec_with_nul`",null],["1.58","is_symlink","is_symlink","`is_symlink` methods",null],["1.58","saturating_div","saturating_div","`{integer}::saturating_div`",null],["1.33","const_ip","const_ip","`Ipv4Addr::new` as `const fn`",null],["1.33","if_while_or_patterns","if_while_or_patterns","or-patterns in `if let` and `while let`",2175],["1.33","repr_packed","repr_packed","`#[repr(packed(N))]` on structs",1399],["1.33","unpin","pin","`marker::Unpin`",null],["1.33","phantom_unpinned","pin","`marker::PhantomUnpinned`",null],["1.33","const_let","const_let","let bindings, assignments and destructuring in `const fn`",2341],["1.33","rc_arc_pin_method_receiver",null,"`Rc`, `Arc` or `Pin` as a method receiver",null],["1.33","min_const_unsafe_fn","min_const_unsafe_fn","`const unsafe fn`s inside `unsafe` blocks in `const fn`",null],["1.33","underscore_imports","underscore_imports","underscore imports (impl-only trait imports)",2166],["1.33","cfg_target_vendor","cfg_target_vendor","`cfg(target_vendor)`",null],["1.33","exhaustive_integer_patterns","exhaustive_integer_patterns","integer match exhaustiveness checking",2591],["1.33","cfg_attr_multi","cfg_attr_multi","`#[cfg_attr(cfg, attr1, attr2, attr3)]`",2539],["1.33","pin","pin","`pin::Pin`",null],["1.33","irrefutable_let_patterns","irrefutable_let_patterns","irrefutable patterns in `if let` and `while let`",2086],["1.13","debug_assert_ne","assert_ne","`debug_assert_ne!`",1653],["1.13","type_macros","type_macros","`macro_rules!` macros in type position",null],["1.13","assert_ne","assert_ne","`assert_ne!`",1653],["1.13","question_mark","question_mark","the `?` operator",243],["1.9","deprecated","deprecated","`#[deprecated]`",1270],["1.42","iter_empty_send_sync","iter_empty_send_sync","unconditional `Send` and `Sync` implementations for `iter::Empty`",null],["1.42","matches_macro","matches_macro","`matches!`",null],["1.42","transparent_enums","transparent_enums","`#[repr(transparent)]` on single-variant enums",null],["1.42","eq_cursor",null,"`PartialEq` and `Eq` implementations for `io::Cursor`",null],["1.42","wait_timeout_until","wait_timeout_until","`Condvar::wait_timeout_while`",null],["1.42","debug_map_key_value","debug_map_key_value","`DebugMap::value`",null],["1.42","manually_drop_take","manually_drop_take","`ManuallyDrop::take`",null],["1.42","slice_from_raw_parts","slice_from_raw_parts","`ptr::slice_from_raw_parts_mut`",null],["1.42","slice_patterns","slice_patterns","subslice patterns (`[a, .., b]` and `[a, xs @ .., b]`)",null],["1.42","attr_on_inline_mod",null,"attribute macros on inline modules",null],["1.42","alloc_layout_const_new","alloc_layout_const_new","`alloc::Layout::new` as `const fn`",null],["1.42","proc_macro_extern_prelude",null,"the `proc_macro` crate without `extern crate` in procedural macro crates",null],["1.42","wait_until","wait_until","`Condvar::wait_while`",null],["1.20","associated_consts","associated_consts","associated constants in `trait` and `impl` blocks",null],["1.20","struct_field_attributes","struct_field_attributes","attributes on struct literal fields",null],["1.20","unimplemented_macro_args",null,"`unimplemented!` with a message",null],["1.20","compile_error","compile_error_macro","`compile_error!`",1695],["1.22","drop_types_in_const","drop_types_in_const","`Drop` types in constants",1440],["1.24","unsized_ptr_is_null",null,"`is_null` on pointers to unsized types",null],["1.24","abi_sysv64","abi_sysv64","the sysV64 ABI on any platform",null],["1.10","weak_new","downgraded_weak","`sync::Weak::new`",null],["1.10","cstring_default",null,"`Default` implementation for `CString`",null],["1.10","cstr_default",null,"`Default` implementation for `&CStr`",null],["1.48","const_result_as_ref","const_result","`Result::as_ref` as `const fn`",null],["1.48","write_stdout_ref",null,"`Write` implementation for `&Stdout`",null],["1.48","const_result_is_ok","const_result","`Result::is_ok` as `const fn`",null],["1.48","doc_alias","doc_alias","`#[doc(alias = \"…\")]`",null],["1.48","const_result_is_err","const_result","`Result::is_err` as `const fn`",null],["1.48","const_option_is_some","const_option","`Option::is_some` as `const fn`",null],["1.48","deque_make_contiguous","deque_make_contiguous","`VecDeque::make_contiguous`",null],["1.48","slice_ptr_range","slice_ptr_range","slice to pointer range methods",null],["1.48","write_sink_ref",null,"`Write` implementation for `&Sink`",null],["1.48","write_child_stdin_ref",null,"`Write` implementation for `&ChildStdin`",null],["1.48","future_pending","future_readiness_fns","`future::pending`",null],["1.48","future_ready","future_readiness_fns","`future::ready`",null],["1.48","const_option_is_none","const_option","`Option::is_none` as `const fn`",null],["1.48","const_ordering_then","const_ordering","`cmp::Ordering::then` as `const fn`",null],["1.48","write_stderr_ref",null,"`Write` implementation for `&Stderr`",null],["1.48","array_try_from_vec",null,"`TryFrom>` implementation for `[T; N]`",null],["1.48","const_ordering_reverse","const_ordering","`cmp::Ordering::reverse` as `const fn`",null],["1.48","const_option_as_ref","const_option","`Option::as_ref` as `const fn`",null],["1.48","intra_doc_links",null,"intra-doc links",null],["1.32","int_to_from_bytes","int_to_from_bytes","integer ↔ bytes conversion functions",null],["1.32","macro_at_most_once_rep","macro_at_most_once_rep","`?` as the Kleene \"at most one\" operator in `macro_rules!` in the 2018 edition",2298],["1.32","uniform_paths","uniform_paths","uniform paths (`use x::y;` as `use self::x::y;`) in the 2018 edition",null],["1.32","const_range_inclusive_end","const_inclusive_range_methods","`RangeInclusive::end` as `const fn`",null],["1.32","self_in_typedefs","self_in_typedefs","`Self` in type definitions",2300],["1.32","const_ipv6addr_octets","const_ipv6","`Ipv6Addr::octets` as `const fn`",null],["1.32","const_iter_empty","const_iter_empty","`iter::empty` as `const fn`",null],["1.32","const_slice_as_ptr","const_slice_as_ptr","`slice::as_ptr` as `const fn`",null],["1.32","const_non_null_as_ptr","const_nonnull_as_ptr","`NonNull::as_ptr` as `const fn`",null],["1.32","const_ipv4addr_is_unspecified","const_ipv4","`Ipv4Addr::is_unspecified` as `const fn`",null],["1.32","boxed_slice_from_iter",null,"`FromIterator` implementation for `Box<[T]>`",null],["1.32","macro_literal_matcher","macro_literal_matcher","the `literal` fragment specifier in `macro_rules!`",1576],["1.32","const_unsafe_cell_get","const_unsafecell_get","`UnsafeCell::get` as `const fn`",null],["1.32","const_manually_drop_into_inner","const_manually_drop","`ManuallyDrop::into_inner` as `const fn`",null],["1.32","const_duration_subsec_micros","duration_consts","`Duration::subsec_micros` as `const fn`",null],["1.32","must_use_traits",null,"`#[must_use]` on traits",null],["1.32","const_char_is_ascii","const_ascii_methods_on_intrinsics","`char::is_ascii` as `const fn`",null],["1.32","dbg_macro","dbg_macro","`dbg!`",2361],["1.32","const_manually_drop_new","const_manually_drop","`ManuallyDrop::new` as `const fn`",null],["1.32","self_struct_ctor","self_struct_ctor","`Self` as a constructor and pattern for unit and tuple structs",2302],["1.32","const_cstr_as_ptr","const_str_as_ptr","`CStr::as_ptr` as `const fn`",null],["1.32","const_duration_as_secs","duration_consts","`Duration::as_secs` as `const fn`",null],["1.32","const_str_as_ptr","const_str_as_ptr","`str::as_ptr` as `const fn`",null],["1.32","const_duration_subsec_nanos","duration_consts","`Duration::subsec_nanos` as `const fn`",null],["1.32","const_duration_subsec_millis","duration_consts","`Duration::subsec_millis` as `const fn`",null],["1.32","const_cell_as_ptr","const_cell_as_ptr","`Cell::as_ptr` as `const fn`",null],["1.32","const_range_inclusive_start","const_inclusive_range_methods","`RangeInclusive::start` as `const fn`",null],["1.32","path_from_str",null,"`FromStr` implementation for `PathBuf`",null],["1.32","const_ipv6addr_new","const_ipv6","`Ipv6Addr::new` as `const fn`",null],["1.23","unsized_ptr_as_mut",null,"`as_mut` on `*mut T`",null],["1.23","unsized_ptr_as_ref",null,"`as_ref` on pointers to unsized types",null],["1.56","io_empty_clone",null,"`Clone` implementation for `io::Empty`",null],["1.56","io_sink_default",null,"`Default` implementation for `io::Sink`",null],["1.56","io_empty_copy",null,"`Copy` implementation for `io::Empty`",null],["1.56","bufwriter_into_parts","bufwriter_into_parts","`BufWriter::into_parts`",null],["1.56","unsafe_cell_raw_get","unsafe_cell_raw_get","`UnsafeCell::raw_get`",null],["1.56","shrink_to","shrink_to","the `shrink_to` method on collections",null],["1.56","const_fn_transmute","const_fn_transmute","`mem::transmute` in `const fn`",null],["1.56","rust_version",null,"`rust-version` in Cargo.toml",2495],["1.56","const_fn_union","const_fn_union","`union` field access in `const fn`",null],["1.56","io_sink_copy",null,"`Copy` implementation for `io::Sink`",null],["1.56","io_empty_default",null,"`Default` implementation for `io::Empty`",null],["1.56","io_sink_clone",null,"`Clone` implementation for `io::Sink`",null],["1.56","std_collections_from_array",null,"`From<[T; N]>` implementation for collections",null],["1.56","extend_for_tuple",null,"`Extend` implementation for `(Extend, Extend)`",null],["1.56","unix_chroot","unix_chroot","`std::os::unix::fs::chroot`",null],["1.74","saturating","saturating_int_impl","the `Saturating` integer wrapper type",928],["1.54","btreemap_into_keys","map_into_keys_values","`BTreeMap::into_keys`",null],["1.54","extended_key_value_attrs","extended_key_value_attributes","macro expansion in key-value attributes",null],["1.54","btreemap_into_values","map_into_keys_values","`BTreeMap::into_values`",null],["1.54","hashmap_into_values","map_into_keys_values","`HashMap::into_values`",null],["1.54","hashmap_into_keys","map_into_keys_values","`HashMap::into_keys`",null],["1.66","btreemap_last_entry","map_first_last","`BTreeMap::last_entry`",null],["1.66","btreemap_last_key_value","map_first_last","`BTreeMap::last_key_value`",null],["1.66","btreeset_first","map_first_last","`BTreeSet::first`",null],["1.66","const_btreeset_new","const_btree_new","`BTreeSet::new` as `const fn`",null],["1.66","span_source_text","proc_macro_span","`proc_macro::Span::source_text`",null],["1.66","const_btreemap_new","const_btree_new","`BTreeMap::new` as `const fn`",null],["1.66","option_unzip","unzip_option","`Option::unzip`",null],["1.66","btreeset_pop_first","map_first_last","`BTreeSet::pop_first`",null],["1.66","btreemap_pop_last","map_first_last","`BTreeMap::pop_last`",null],["1.66","hint_black_box","bench_black_box","`hint::black_box`",2360],["1.66","btreeset_pop_last","map_first_last","`BTreeSet::pop_last`",null],["1.66","btreeset_last","map_first_last","`BTreeSet::last`",null],["1.66","btreemap_first_key_value","map_first_last","`BTreeMap::first_key_value`",null],["1.66","arbitrary_enum_discriminant","arbitrary_enum_discriminant","allow arbitrary enums to have explicit discriminants",2363],["1.66","btreemap_first_entry","map_first_last","`BTreeMap::first_entry`",null],["1.66","half_open_range_patterns","half_open_range_patterns","half-open range patterns",null],["1.66","os_fd","os_fd","`std::os::fd` module",null],["1.66","btreemap_pop_first","map_first_last","`BTreeMap::pop_first`",null],["1.36","io_cursor_default",null,"`Default` implementation for `io::Cursor`",null],["1.36","maybe_uninit","maybe_uninit","`mem::MaybeUninit`",1892],["1.36","const_layout_from_size_align_unchecked",null,"`alloc::Layout::from_size_align_unchecked` as `const fn`",null],["1.36","alloc","alloc","the `alloc` crate",null],["1.36","hashbrown",null,"`hashbrown::HashMap` as the implementation of `HashMap`",null],["1.36","string_borrow_mut_str",null,"`BorrowMut` implementation for `String`",null],["1.36","const_needs_drop","const_needs_drop","`mem::needs_drop` as `const fn`",null],["1.36","string_from_string_ref",null,"`From<&String>` implementation for `String`",null],["1.36","const_nonnull_dangling","const_nonnull_dangling","`NonNull::dangling` as `const fn`",null],["1.36","const_nonnull_cast","const_nonnull_cast","`NonNull::cast` as `const fn`",null],["1.36","dbg_multiple_args",null,"multiple arguments in `dbg!` macro invocations",null],["1.36","nll_2015",null,"Non-Lexical Lifetimes (NLL) on the 2015 edition",null],["1.43","if_attr",null,"attributes on `if` expressions",null],["1.43","cstring_from_vec_of_nonzerou8",null,"`From>` implementation for `CString`",null],["1.43","from_utf8_error_clone",null,"`Clone` implementation for `FromUtf8Error`",null],["1.43","once_is_completed","once_is_completed","`sync::once::Once::is_completed`",null],["1.43","const_ascii_methods_on_intrinsics","const_ascii_methods_on_intrinsics","`u8::is_ascii` as `const fn`",null],["1.43","assoc_int_consts","assoc_int_consts","numeric constants as associated constants",null],["1.43","core_primitive","core_primitive","`core::primitive`",null],["1.43","from_utf8_error_eq",null,"`Eq` implementation for `FromUtf8Error`",null],["1.43","from_utf8_error_partial_eq",null,"`PartialEq` implementation for `FromUtf8Error`",null],["1.43","boxed_slice_try_from","boxed_slice_try_from","`TryFrom` implementations from boxed slices to boxed arrays",null],["1.43","iter_once_with","iter_once_with","`iter::once_with`",null],["1.43","string_as_mut",null,"`AsMut` implementation for `String`",null],["1.43","extra_log_consts","extra_log_consts","`{f32, f64}::{LOG2_10, LOG10_2}`",null],["1.65","let_else","let_else","let-else statements",3137],["1.65","bound_as_ref","bound_as_ref","`ops::Bound::as_ref`",null],["1.65","backtrace","backtrace","`std::backtrace`",2504],["1.65","ptr_cast_const","ptr_const_cast","`<*mut T>::cast_const`",null],["1.65","label_break_value","label_break_value","break out of labelled blocks with value",2046],["1.65","io_read_to_string","io_read_to_string","`io::read_to_string`",null],["1.65","ptr_cast_mut","ptr_const_cast","`<*const T>::cast_mut`",null],["1.65","generic_associated_types","generic_associated_types","generic associated types",1598],["1.16","assoc_ty_struct_expr_pat",null,"associated types in struct expressions and patterns",null],["1.16","writeln_no_args",null,"`writeln!` without arguments",null],["1.16","self_struct_expr_pat",null,"`Self` in struct expressions and patterns",null],["1.44","path_buf_with_capacity","path_buf_capacity","`PathBuf::with_capacity`",null],["1.44","vec_from_array",null,"`From<[T; N]>` implementation for `Vec`",null],["1.44","osstring_deref_mut",null,"`DerefMut` implementation for `OsString`",null],["1.44","alloc_layout_align_to","alloc_layout_extras","`alloc::Layout::align_to`",null],["1.44","convert_infallible_hash",null,"`Hash` implementation for `convert::Infallible`",null],["1.44","path_buf_capacity","path_buf_capacity","`PathBuf::capacity`",null],["1.44","path_buf_clear","path_buf_capacity","`PathBuf::clear`",null],["1.44","alloc_layout_pad_to_align","alloc_layout_extras","`alloc::Layout::pad_to_align`",null],["1.44","no_std_async_await",null,"`async` / `.await` in `#[no_std]` crates",null],["1.44","alloc_layout_extend","alloc_layout_extras","`alloc::Layout::extend`",null],["1.44","path_buf_reserve_exact","path_buf_capacity","`PathBuf::reserve_exact`",null],["1.44","path_buf_reserve","path_buf_capacity","`PathBuf::reserve`",null],["1.44","lexerror_error",null,"`Error` implementation for `proc_macro::LexError`",null],["1.44","lexerror_display",null,"`Display` implementation for `proc_macro::LexError`",null],["1.44","alloc_layout_array","alloc_layout_extras","`alloc::Layout::array`",null],["1.44","from_mut_str_for_string",null,"`From<&mut str>` implementation for `String`",null],["1.44","path_buf_shrink_to_fit","path_buf_capacity","`PathBuf::shrink_to_fit`",null],["1.44","ioslice_clone",null,"`Clone` implementation for `io::IoSlice`",null],["1.44","osstring_indexmut_rangefull",null,"`IndexMut` implementation for `OsString`",null],["1.44","const_int_to_from_bytes",null,"integer ↔ bytes conversion functions as `const fn`",null],["1.44","float_approx_unchecked_to","float_approx_unchecked_to","unchecked float → int conversion",null],["1.44","ioslice_copy",null,"`Copy` implementation for `io::IoSlice`",null],["1.61","process_exitcode",null,"`process::ExitCode`",null],["1.61","vec_retain_mut",null,"`Vec::retain_mut`",null],["1.61","vec_from_array_mut_ref",null,"`From<&mut [T; N]>` implementation for `Vec`",null],["1.61","termination_trait_lib",null,"the `Termination` trait",null],["1.61","pin_static_ref","pin_static_ref","`Pin::static_ref`",null],["1.61","const_fn_fn_ptr_basics","const_fn_fn_ptr_basics","`const fn` returning function pointers",null],["1.61","pin_static_mut","pin_static_ref","`Pin::static_mut`",null],["1.61","vecdeque_retain_mut",null,"`VecDeque::retain_mut`",null],["1.61","unix_socket_creation","unix_socket_creation","`unix::net::SocketAddr::from_pathname`",null],["1.61","write_cursor_array",null,"`Write` implementation for `Cursor<[u8; N]>`",null],["1.61","const_impl_trait","const_impl_trait","`const fn` returning `impl Trait`",null],["1.61","joinhandle_is_finished",null,"`JoinHandle::is_finished`",null],["1.61","vec_from_array_ref",null,"`From<&[T; N]>` implementation for `Vec`",null],["1.61","const_fn_trait_bound","const_fn_trait_bound","Trait bounds on generics of a `const fn`",null],["1.46","leading_ones","leading_trailing_ones","`leading_ones` integer methods",null],["1.46","option_zip","option_zip","`Option::zip`",null],["1.46","const_if_match","const_if_match","`if` and `match` in constant evaluation",2342],["1.46","vec_intoiter_as_ref",null,"`AsRef<[T]>` implementation for `vec::IntoIter`",null],["1.46","const_loop","const_loop","`loop` and `while` in constant evaluation",2344],["1.46","vec_drain_as_ref",null,"`AsRef<[T]>` implementation for `vec::Drain<'_, T>`",null],["1.46","const_transmute","const_transmute","`mem::transmute` in constants",null],["1.46","from_char_for_string",null,"`From` implementation for `String`",null],["1.46","const_forget","const_forget","`mem::forget` as `const fn`",null],["1.46","vec_drain_as_slice","vec_drain_as_slice","`std::vec::Drain::as_slice`",null],["1.46","track_caller","track_caller","the `#[track_caller]` attribute",2091],["1.46","partialeq_vec_for_ref_slice","partialeq_vec_for_ref_slice","`PartialEq>` implementations for slices",null],["1.46","trailing_ones","leading_trailing_ones","`trailing_ones` integer methods",null],["1.46","const_slice_cast",null,"array to slice casts and coercions in `const fn`",null],["1.46","nested_tuple_indexing",null,"nested tuple indexing without parentheses (`tuple.0.0`)",null],["1.31","edition_2018",null,"the 2018 edition",null],["1.31","min_const_fn","min_const_fn","`const fn`",911],["1.31","pattern_parentheses","pattern_parentheses","parentheses in patterns",null],["1.31","impl_header_lifetime_elision","impl_header_lifetime_elision","lifetime elision in `impl` headers",null],["1.31","tool_lints","tool_lints","scoped lints",null],["1.31","extern_crate_item_prelude","extern_crate_item_prelude","`extern crate foo as bar;`",null],["1.19","eprintln","eprint","`eprintln!`",1869],["1.19","untagged_unions","untagged_unions","`union`s",1444],["1.19","loop_break_value","loop_break_value","`break` with a value inside `loop`s",1624],["1.19","relaxed_adts","relaxed_adts","numeric fields in struct expressions and patterns",null],["1.19","eprint","eprint","`eprint!`",null],["1.19","closure_to_fn_coercion","closure_to_fn_coercion","non-capturing closure to function pointer coercion",1558],["1.49","partialeq_vec_for_slice","partialeq_vec_for_slice","`impl PartialEq> for [A] where A: PartialEq`",null],["1.49","manually_drop_in_unions","untagged_unions","`ManuallyDrop` in `union`s",null],["1.49","partialeq_slice_for_vec","partialeq_vec_for_slice","`impl PartialEq<[B]> for Vec where A: PartialEq`",null],["1.49","nzint_try_from_nzint","nzint_try_from_nzint_conv","`TryFrom` conversions between `NonZero` integer types",null],["1.49","move_ref_pattern","move_ref_pattern","move and reference bindings in the same match pattern",null],["1.49","const_poll_is_pending","const_poll","`Poll::is_pending` as `const fn`",null],["1.49","const_poll_is_ready","const_poll","`Poll::is_ready` as `const fn`",null],["1.49","empty_enum_to_int",null,"uninhabited enum to integer casts",null],["1.28","offsetof_ident",null,"`offsetof` as an identifier",2421],["1.28","pure_ident",null,"`pure` as an identifier",2421],["1.28","sizeof_ident",null,"`sizeof` as an identifier",2421],["1.28","global_allocator","global_allocator","`#[global_allocator]`",null],["1.28","alignof_ident",null,"`alignof` as an identifier",2421],["1.28","repr_transparent","repr_transparent","`#[repr(transparent)]` on newtype structs",null],["1.60","namespaced_features",null,"namespaced Cargo features",null],["1.60","weak_dep_features",null,"Weak Cargo dependency features",null],["1.60","u8_escape_ascii","inherent_ascii_escape","`u8::escape_ascii`",null],["1.60","cfg_panic",null,"`#[cfg(panic = ...)]`",null],["1.60","rc_new_cyclic","arc_new_cyclic","`Rc::new_cyclic`",null],["1.60","maybe_uninit_assume_init_drop","maybe_uninit_extra","`MaybeUninit::assume_init_drop`",null],["1.60","slice_escape_ascii","inherent_ascii_escape","`[u8]::escape_ascii`",null],["1.60","maybe_uninit_assume_init_read","maybe_uninit_extra","`MaybeUninit::assume_init_read`",null],["1.60","not_never",null,"`Not` implementation for `!`",null],["1.60","arc_new_cyclic","arc_new_cyclic","`Arc::new_cyclic`",null],["1.60","vec_spare_capacity","vec_spare_capacity","`Vec::spare_capacity_mut`",null],["1.67","const_char_from_digit",null,"`char::from_digit` as `const fn`",null],["1.67","int_log","int_log","integer logarithm methods on integers",null],["1.67","const_char_to_digit",null,"`char::to_digit` as `const fn`",null],["1.67","nonzero_bits","nonzero_bits","`NonZero*::BITS`",null],["1.67","control_flow_eq",null,"`Eq` implementation for `ControlFlow`",null],["1.67","const_char_from_u32",null,"`char::from_u32` as `const fn`",null],["1.67","control_flow_hash",null,"`Hash` implementation for `ControlFlow`",null],["1.50","const_ipv4addr_to_ipv6_mapped","const_ipv4","`Ipv4Addr::to_ipv6_mapped` as `const fn`",null],["1.50","const_ipv4addr_is_loopback","const_ipv4","`Ipv4Addr::is_loopback` as `const fn`",null],["1.50","const_ipv4addr_is_broadcast","const_ipv4","`Ipv4Addr::is_broadcast` as `const fn`",null],["1.50","const_ipaddr_is_unspecified","const_ip","`IpAddr::is_unspecified` as `const fn`",null],["1.50","const_ipv6addr_to_ipv4","const_ipv6","`Ipv6Addr::to_ipv4` as `const fn`",null],["1.50","f64_clamp","clamp","`f64::clamp`",1961],["1.50","const_ipaddr_is_multicast","const_ip","`IpAddr::is_multicast` as `const fn`",null],["1.50","const_ipv6addr_is_multicast","const_ipv6","`Ipv6Addr::is_multicast` as `const fn`",null],["1.50","const_ipv6addr_segments","const_ipv6","`Ipv6Addr::segments` as `const fn`",null],["1.50","const_ipaddr_is_loopback","const_ip","`IpAddr::is_loopback` as `const fn`",null],["1.50","ord_clamp","clamp","`Ord::clamp`",1961],["1.50","or_insert_with_key","or_insert_with_key","`Entry::or_insert_with_key`",null],["1.50","refcell_take","refcell_take","`RefCell::take`",null],["1.50","punct_partial_eq_char",null,"`PartialEq` implementation for `proc_macro::Punct`",null],["1.50","const_ipv4addr_octets","const_ipv4","`Ipv4Addr::octets` as `const fn`",null],["1.50","const_ipaddr_is_ipv4","const_ip","`IpAddr::is_ipv4` as `const fn`",null],["1.50","slice_fill","slice_fill","`slice::fill`",null],["1.50","const_ipv4addr_to_ipv6_compatible","const_ipv4","`Ipv4Addr::to_ipv6_compatible` as `const fn`",null],["1.50","const_ipv6addr_is_unspecified","const_ipv6","`Ipv6Addr::is_unspecified` as `const fn`",null],["1.50","f32_clamp","clamp","`f32::clamp`",1961],["1.50","unsafe_cell_get_mut","unsafe_cell_get_mut","`UnsafeCell::get_mut`",null],["1.50","const_ipaddr_is_ipv6","const_ip","`IpAddr::is_ipv6` as `const fn`",null],["1.50","const_ipv4addr_is_private","const_ipv4","`Ipv4Addr::is_private` as `const fn`",null],["1.50","const_ipv6addr_is_loopback","const_ipv6","`Ipv6Addr::is_loopback` as `const fn`",null],["1.50","const_ipv4addr_is_documentation","const_ipv4","`Ipv4Addr::is_documentation` as `const fn`",null],["1.50","assign_manually_drop_in_unions",null,"safe assignment to `ManuallyDrop` in `union`s",null],["1.50","bool_then","lazy_bool_to_option","`bool::then`",null],["1.50","const_ipv4addr_is_multicast","const_ipv4","`Ipv4Addr::is_multicast` as `const fn`",null],["1.50","const_ipv4addr_is_link_local","const_ipv4","`Ipv4Addr::is_link_local` as `const fn`",null],["1.53","duration_zero","duration_zero","`Duration::ZERO`",null],["1.53","float_is_subnormal","is_subnormal","`{f32, f64}::is_subnormal`",null],["1.53","atomic_ptr_fetch_update","atomic_fetch_update","`AtomicPtr::fetch_update`",null],["1.53","nonzero_leading_zeros","nonzero_leading_trailing_zeros","`NonZero*::leading_zeros`",null],["1.53","atomic_bool_fetch_update","atomic_fetch_update","`AtomicBool::fetch_update`",null],["1.53","bufreader_seek_relative","bufreader_seek_relative","`BufReader::seek_relative`",null],["1.53","array_from_mut","array_from_ref","`std::array::from_mut`",null],["1.53","non_ascii_idents","non_ascii_idents","non-ASCII identifiers",null],["1.53","array_from_ref","array_from_ref","`std::array::from_ref`",null],["1.53","btreemap_retain","btree_retain","`BTreeMap::retain`",null],["1.53","or_patterns","or_patterns","nested or-patterns",null],["1.53","osstr_ascii","osstring_ascii","ASCII methods on `OsStr`",null],["1.53","slice_iter_mut_as_slice","slice_iter_mut_as_slice","`slice::IterMut::as_slice`",null],["1.53","vec_extend_from_within","vec_extend_from_within","`Vec::extend_from_within`",null],["1.53","slice_iter_mut_as_ref",null,"`AsRef<[T]>` implementation for `slice::IterMut<'_, T>`",null],["1.53","nonzero_trailing_zeros","nonzero_leading_trailing_zeros","`NonZero*::trailing_zeros`",null],["1.53","btreeset_retain","btree_retain","`BTreeSet::retain`",null],["1.53","int_bits_const","int_bits_const","Associated `BITS` constants for integer types",null],["1.53","duration_is_zero","duration_zero","`Duration::is_zero`",null],["1.69","union_field_assoc_type",null,"associated types as field types in a `union`",null],["1.69","rc_asrawfd",null,"`AsRawFd` implementation for `Rc`",null],["1.69","rc_asfd",null,"`AsFd` implementation for `Rc`",null]];export default caniuseIndex; \ No newline at end of file diff --git a/lib/index/labels.js b/lib/index/labels.js index 067115e..b1c9607 100644 --- a/lib/index/labels.js +++ b/lib/index/labels.js @@ -1 +1 @@ -var labelsIndex=[["-Cprefer-dynamic","Codegen option: Prefer dynamic linking to static linking."],["-Zbuild-std","Unstable Cargo option: Compile the standard library yourself."],["-Zdebuginfo-compression","Unstable option: debuginfo compression"],["-Zfmt-debug","Unstable option: fmt-debug"],["-Zmetrics-dir","Unstable option: metrics directory"],["-Znormalize-docs","Unstable rustdoc option: Normalize/evaluate types when generating docs"],["-Zpolymorphize","Unstable option: Polymorphization."],["-Zrandomize-layout","Unstable option: Randomize the layout of types."],["-Zterminal-urls","Unstable option: emit OSC8 hyperlinks in diagnostics"],["-Zthir-unsafeck","Unstable option: THIR unsafeck"],["-Ztrace-macros","Unstable option: trace-macros"],["-Zvalidate-mir","Unstable option: MIR validation"],["A-abi","Area: Concerning the application binary interface (ABI)."],["A-allocators","Area: Custom and system allocators"],["A-array","Area: [T; N]"],["A-associated-items","Area: Associated items such as associated types and consts."],["A-async-await","Area: Async & Await"],["A-atomic","Area: atomics, barriers, and sync primitives"],["A-attributes","Area: #[attributes(..)]"],["A-auto-traits","Area: auto traits (`auto trait Send`)"],["A-autovectorization","Issue related to autovectorization, which can impact perf or code size."],["A-backtrace","Area: backtraces"],["A-borrow-checker","Area: The borrow checker"],["A-ci","Area: Our Github Actions CI"],["A-cli","Area: Command line interface to the compiler."],["A-clippy","Area: Clippy"],["A-closures","Area: closures (`|args| { .. }`)"],["A-code-coverage","Area: Source-based code coverage (-Cinstrument-coverage)"],["A-codegen","Area: Code generation"],["A-coercions","Area: implicit and explicit `expr as Type` coercions"],["A-coherence","Area: Coherence"],["A-coinduction","Area: Concerning coinduction, most often for auto traits"],["A-collections","Area: std::collections."],["A-compiletest","Area: the compiletest test runner"],["A-concurrency","Area: Concurrency related issues."],["A-const-eval","Area: constant evaluation (mir interpretation)"],["A-const-fn","Area: const fn foo(..) {..}. Pure functions which can be applied at compile time."],["A-const-generics","Area: const generics (parameters and arguments)"],["A-const-prop","Area: Constant Propagation"],["A-contributor-roadblock","Area: Makes things more difficult for new contributors to rust itself"],["A-control-flow","Area: Relating to control flow"],["A-coroutines","Area: Coroutines"],["A-cranelift","Things relevant to the [future] cranelift backend"],["A-crate-compat","Area: Impacting semver compatibility of crates in the ecosystem"],["A-crates","Area: Crates and their interactions (like crate loading)"],["A-cross","Area: Cross compilation"],["A-cross-crate-reexports","Area: Documentation that has been re-exported from a different crate"],["A-debuginfo","Area: Debugging information in compiled programs (DWARF, PDB, etc.)"],["A-destructors","Area: destructors (Drop, ..)"],["A-diagnostics","Area: Messages for errors, warnings, and lints"],["A-doc-alias","Area: #[doc(alias)]"],["A-doc-coverage","Area: Calculating how much of a crate has documentation"],["A-docs","Area: documentation for any part of the project, including the compiler, standard library, and tools"],["A-doctests","Area: Documentation tests, run by rustdoc"],["A-download-rustc","Area: Related to the `rust.download-rustc` build option"],["A-driver","Area: rustc_driver that ties everything together into the `rustc` compiler"],["A-dst","Area: Dynamically Sized Types"],["A-edition-2018-lints","Area: lints supporting the 2018 edition"],["A-edition-2021","Area: The 2021 edition"],["A-edition-2024","Area: The 2024 edition"],["A-edition-2027","Area: The 2027 edition"],["A-error-codes","Area: Explanation of an error code (--explain)"],["A-error-handling","Area: Error handling"],["A-exhaustiveness-checking","Relating to exhaustiveness / usefulness checking of patterns"],["A-ffi","Area: Foreign Function Interface (FFI)"],["A-filesystem","Area: std::fs"],["A-floating-point","Area: Floating point numbers and arithmetic"],["A-fmt","Area: std::fmt"],["A-frontend","Area: frontend (errors, parsing and HIR)"],["A-gcc","Things relevant to the [future] GCC backend"],["A-github-actions","Area: GitHub Actions (GHA)"],["A-grammar","Area: The grammar of Rust"],["A-hir","Area: The high-level intermediate representation (HIR)"],["A-impl-trait","Area: impl Trait. Universally / existentially quantified anonymous types with static dispatch."],["A-implied-bounds","Area: Related to implied bounds"],["A-incr-comp","Area: Incremental compilation"],["A-inference","Area: Type inference"],["A-inline-assembly","Area: inline asm!(..)"],["A-intra-doc-links","Area: Intra-doc links, the ability to link to items in docs by name"],["A-intrinsics","Area: intrinsics"],["A-io","Area: std::io, std::fs, std::net and std::path"],["A-iterators","Area: Iterators"],["A-lang-item","Area: lang items"],["A-layout","Area: Memory layout of types"],["A-lazy-normalization","Area: lazy normalization (tracking issue: #60471)"],["A-libtest","Area: #[test] related"],["A-licensing","Area: compiler licensing"],["A-lifetimes","Area: lifetime related"],["A-linkage","Area: linking into static, shared libraries and binaries"],["A-lint","Area: Lints (warnings about flaws in source code) such as unused_mut."],["A-LLVM","Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues."],["A-local-reexports","Area: Documentation that has been locally re-exported (i.e., non-cross-crate)"],["A-lto","Area: Link Time Optimization"],["A-macros","Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)"],["A-macros-1.2","Area: Declarative macros 1.2"],["A-macros-2.0","Area: Declarative macros 2.0 (#39412)"],["A-markdown-parsing","Area: Markdown parsing for doc-comments"],["A-maybe-future-edition","Something we may consider for a future edition."],["A-meta","Area: Issues about the rust-lang/rust repository."],["A-metadata","Area: Crate metadata"],["A-metrics","Area: metrics"],["A-mir","Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html"],["A-mir-opt","Area: MIR optimizations"],["A-mir-opt-inlining","Area: MIR inlining"],["A-mir-opt-nrvo","Fixed by NRVO"],["A-miri","Area: The miri tool"],["A-monomorphization","Area: Monomorphization"],["A-naked","Area: #[naked], prologue and epilogue-free, functions, https://git.io/vAzzS"],["A-NLL","Area: Non Lexical Lifetimes (NLL)"],["A-panic","Area: Panicking machinery"],["A-parallel-queries","Area: Parallel query execution"],["A-parser","Area: The parsing of Rust source code to an AST."],["A-patterns","Relating to patterns and pattern matching"],["A-pin","Area: Pin"],["A-plugin","Area: compiler plugins, doc.rust-lang.org/nightly/unstable-book/language-features/plugin.html"],["A-pretty","Area: Pretty printing (incl. `-Z unpretty`)."],["A-proc-macro-back-compat","Area: Backwards compatibility hacks for proc macros -s"],["A-proc-macros","Area: Procedural macros"],["A-process","Area: std::process and std::env"],["A-profile-guided-optimization","Area: profile-guided optimizations (PGO)"],["A-profile-rt","Area: The profiler runtime for llvm-profdata and llvm-cov"],["A-query-system","Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)"],["A-raw-pointers","Area: raw pointers, MaybeUninit, NonNull"],["A-repr-c","Issue: `repr(C)` does not work the way it should"],["A-reproducibility","Area: Reproducible / Deterministic builds"],["A-resolve","Area: Path resolution"],["A-result-option","Area: Result and Option combinators"],["A-run-make","Area: port run-make Makefiles to rmake.rs"],["A-runtime","Area: std's runtime and \"pre-main\" init for handling backtraces, unwinds, stack overflows"],["A-rust-2018-preview","Area: The 2018 edition preview"],["A-rust-for-linux","Relevant for the Rust-for-Linux project"],["A-rustdoc-js","Area: Rustdoc's front-end"],["A-rustdoc-json","Area: Rustdoc JSON backend"],["A-rustdoc-scrape-examples","Area: The (unstable) rustdoc scrape-examples feature described in RFC 3123"],["A-rustdoc-search","Area: Rustdoc's search feature"],["A-rustdoc-themes","Area: Themes for HTML pages generated by rustdoc"],["A-rustdoc-type-layout","Area: `rustdoc --show-type-layout` (nightly-only)"],["A-rustdoc-ui","Area: rustdoc UI (generated HTML)"],["A-rustfmt","Area: Rustfmt"],["A-sanitizers","Area: Sanitizers for correctness and code quality."],["A-save-analysis","Area: saving results of analyses such as inference and borrowck results to a file."],["A-security","Area: Security related issues (example: address space layout randomization)"],["A-self-profile","Area: Self-profiling feature of the compiler"],["A-simd","Area: SIMD (Single Instruction Multiple Data)"],["A-slice","Area: [T]"],["A-slice-patterns","Area: slice patterns, https://github.com/rust-lang/rust/issues/23121"],["A-specialization","Area: Trait impl specialization"],["A-spurious","Area: Spurious failures in builds (spuriously == for no apparent reason)"],["A-stability","Area: issues related to #[stable] and #[unstable] attributes themselves."],["A-stack-probe","Area: stack probing and guard pages"],["A-str","Area: str and String"],["A-strict-provenance","Area: Strict provenance for raw pointers"],["A-suggestion-diagnostics","Area: Suggestions generated by the compiler applied by `cargo fix`."],["A-syntaxext","Area: Syntax extensions"],["A-synthetic-impls","Area: Synthetic impls, used by rustdoc to document auto traits and traits with blanket impls"],["A-target-feature","Area: Enabling/disabling target features like AVX, Neon, etc."],["A-target-specs","Area: compile-target specifications"],["A-targets","Area: Concerning the implications of different compiler targets"],["A-technical-debt","Area: Internal cleanup work"],["A-testsuite","Area: The testsuite used to check the correctness of rustc"],["A-thread","Area: std::thread"],["A-thread-locals","Area: Thread local storage (TLS)"],["A-time","Area: Time"],["A-trait-objects","Area: trait objects, vtable layout"],["A-traits","Area: Trait system"],["A-translation","Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic"],["A-type-based-search","Area: Searching rustdoc pages using type signatures"],["A-typesystem","Area: The type system"],["A-unicode","Area: Unicode"],["A-valtree","Area: Value trees or fixed by value trees"],["A-variance","Area: Variance (https://doc.rust-lang.org/nomicon/subtyping.html)"],["A-visibility","Area: Visibility / privacy."],["A-zst","Area: Zero-sized types (ZST)."],["april-1st","Started on the 1st of April"],["AsyncAwait-Polish","Async-await issues that are part of the \"polish\" area"],["AsyncAwait-Triaged","Async-await issues that have been triaged during a working group meeting."],["B-experimental","Blocker: In-tree experiment; RFC pending or unneeded."],["B-RFC-approved","Blocker: Approved by a merged RFC but not yet implemented."],["B-RFC-implemented","Blocker: Approved by a merged RFC and implemented."],["B-unstable","Blocker: Implemented in the nightly compiler and unstable."],["beta-accepted","Accepted for backporting to the compiler in the beta channel."],["beta-nominated","Nominated for backporting to the compiler in the beta channel."],["C-bug","Category: This is a bug."],["C-cleanup","Category: PRs that clean code up or issues documenting cleanup."],["C-defective-hardware","Issue that was filed as a possible software bug but is actually defective hardware"],["C-discussion","Category: Discussion or questions that doesn't represent real issues."],["C-enhancement","Category: An issue proposing an enhancement or a PR with one."],["C-feature-accepted","Category: A feature request that has been accepted pending implementation."],["C-feature-request","Category: A feature request, i.e: not implemented / a PR."],["C-future-compatibility","Category: Future-compatibility lints"],["C-gub","Category: the reverse of a compiler bug is generally UB"],["C-optimization","Category: An issue highlighting optimization opportunities or PRs implementing such"],["C-totally-not-a-tracking-issue","Category: Totally not a tracking issue"],["C-tracking-forever","Category: Tracking issues that will never be closed because they are tracking other issues"],["C-tracking-issue","Category: A tracking issue for an RFC or an unstable feature."],["call-for-testing","Marks issues that require broader testing from the community, e.g. before stabilization."],["const-generics-bad-diagnostics","An error is correctly emitted, but is confusing, for `min_const_generics`."],["const-generics-fixed-by-const_generics","A bug that has been fixed once `const_generics` is enabled."],["const-hack","This PR introduced a hack to make things valid in `const fn`."],["D-confusing","Diagnostics: Confusing error or lint that should be reworked."],["D-crate-version-mismatch","Diagnostics: Errors or lints caused be the use of two different crate versions."],["D-diagnostic-infra","Diagnostics: Issues that affect all diagnostics, or relate to the diagnostic machinery itself."],["D-edition","Diagnostics: An error or lint that should account for edition differences."],["D-imprecise-spans","Diagnostics: spans don't point to exactly the erroneous code"],["D-inconsistent","Diagnostics: Inconsistency in formatting, grammar or style between diagnostic messages."],["D-incorrect","Diagnostics: A diagnostic that is giving misleading or incorrect information."],["D-invalid-suggestion","Diagnostics: A structured suggestion resulting in incorrect code."],["D-newcomer-roadblock","Diagnostics: Confusing error or lint; hard to understand for new users."],["D-papercut","Diagnostics: An error or lint that needs small tweaks."],["D-terse","Diagnostics: An error or lint that doesn't give enough information about the problem at hand."],["D-unicode-unaware","Diagnostics: Diagnostics that are unaware of unicode and trigger codepoint boundary assertions"],["D-verbose","Diagnostics: Too much output caused by a single piece of incorrect code."],["disposition-close","This PR / issue is in PFCP or FCP with a disposition to close it."],["disposition-merge","This issue / PR is in PFCP or FCP with a disposition to merge it."],["disposition-postpone","This issue / PR is in PFCP or FCP with a disposition to postpone it."],["E-easy","Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue."],["E-hard","Call for participation: Hard difficulty. Experience needed to fix: A lot."],["E-help-wanted","Call for participation: Help is requested to fix this issue."],["E-medium","Call for participation: Medium difficulty. Experience needed to fix: Intermediate."],["E-mentor","Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion."],["E-needs-bisection","Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc"],["E-needs-mcve","Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example"],["E-needs-stack","Call for participation: This issue needs a stacktrace."],["E-needs-test","Call for participation: An issue has been fixed and does not reproduce, but no test has been added."],["E-tedious","Call for participation: An issue involves lots of work and is better handled as many small tasks."],["F-abi_c_cmse_nonsecure_call","`#![feature(abi_c_cmse_nonsecure_call)]`"],["F-adt_const_params","`#![feature(adt_const_params)]`"],["F-anonymous_lifetime_in_impl_trait","`#![feature(anonymous_lifetime_in_impl_trait)]`"],["F-arbitrary_self_types","`#![feature(arbitrary_self_types)]`"],["F-array_repeat","`#![feature(array_repeat)]`"],["F-asm","`#![feature(asm)]` (not `llvm_asm`)"],["F-associated_const_equality","`#![feature(associated_const_equality)]`"],["F-associated_type_bounds","`#![feature(associated_type_bounds)]`"],["F-associated_type_defaults","`#![feature(associated_type_defaults)]`"],["F-async_closure","`#![feature(async_closure)]`"],["F-async_drop","Async drop"],["F-async_fn_in_trait","Static async fn in traits"],["F-async_fn_traits","`#![feature(async_fn_traits)]`"],["F-async_for_loop","`#![feature(async_for_loop)]`"],["F-auto_traits","`#![feature(auto_traits)]`"],["F-autodiff","`#![feature(autodiff)]`"],["F-bindings_after_at","`#![feature(bindings_after_at)]`"],["F-box_patterns","`#![feature(box_patterns)]`"],["F-box_uninit_write",""],["F-bufreader_peek","`#![feature(bufreader_peek)]`"],["F-c_str_literals","`#![feature(c_str_literals)]`"],["F-c_unwind","`#![feature(c_unwind)]`"],["F-c_variadic","`#![feature(c_variadic)]`"],["F-cfg_accessible","`#![feature(cfg_accessible)]`"],["F-cfg_version","`#![feature(cfg_version)]`"],["F-check-cfg","--check-cfg"],["F-closure_lifetime_binder","`#![feature(closure_lifetime_binder)]`"],["F-cmse_nonsecure_entry","`#![feature(cmse_nonsecure_entry)]`"],["F-coerce_unsized","The `CoerceUnsized` trait"],["F-collapse_debuginfo","`#![feature(collapse_debuginfo)]`"],["F-const_async_blocks","`#![feature(const_async_blocks)]`"],["F-const_closures","`#![feature(const_closures)]`"],["F-const_extern_fn","`#![feature(const_extern_fn)]`"],["F-const_generics","`#![feature(const_generics)]`"],["F-const_generics_defaults","`#![feature(const_generics_defaults)]`"],["F-const_heap","`#[feature(const_heap)]`"],["F-const_mut_refs","`#![feature(const_mut_refs)]`"],["F-const_refs_to_cell","`#[feature(const_refs_to_cell)]`"],["F-const_refs_to_static","`#![feature(const_refs_to_static)]`"],["F-const_trait_impl","`#![feature(const_trait_impl)]`"],["F-context_ext","`#![feature(context_ext)]`"],["F-core_intrinsics","Issue in the \"core intrinsics\" for internal usage only."],["F-core_pattern_type","`#![feature(core_pattern_type)]`"],["F-core_pattern_types","`#![feature(core_pattern_types)]`"],["F-coroutine_clone","`#![feature(coroutine_clone)]`"],["F-coroutines","`#![feature(coroutines)]`"],["F-custom_test_frameworks","`#![feature(custom_test_frameworks)]`"],["F-debugger_visualizer","`#![feature(debugger_visualizer)]`"],["F-decl_macro","`#![feature(decl_macro)]`"],["F-default_type_parameter_fallback","`#![feature(default_type_parameter_fallback)]`"],["F-deprecated_safe","`#![feature(deprecated_safe)]`"],["F-deref_patterns","`#![feature(deref_patterns)]`"],["F-derive_smart_pointer","`#![feature(derive_smart_pointer)]`"],["F-destructuring_assignment","`#![feature(destructuring_assignment)]`"],["F-dispatch_from_dyn","`#![feature(dispatch_from_dyn)]`"],["F-doc_auto_cfg","`#![feature(doc_auto_cfg)]`"],["F-doc_cfg","`#![feature(doc_cfg)]`"],["F-doc_masked","`#![feature(doc_masked)]`"],["F-dropck_eyepatch","`#![feature(dropck_eyepatch)]`"],["F-dyn_star","`#![feature(dyn_star)]`"],["F-effects","`#![feature(effects)]`"],["F-exclusive_range_pattern","`#![feature(exclusive_range_pattern)]`"],["F-exhaustive_patterns","`#![feature(exhaustive_patterns)]`"],["F-explicit_tail_calls","`#![feature(explicit_tail_calls)]`"],["F-export_executable_symbols","`#![feature(export_executable_symbols)]`"],["F-extended_key_value_attributes","`#![feature(extended_key_value_attributes)]"],["F-extended_varargs_abi_support","`#![feature(extended_varargs_abi_support)]`"],["F-extern_item_impls","`#![feature(extern_item_impls)]`"],["F-extern_types","`#![feature(extern_types)]`"],["F-external_doc","`#![feature(external_doc)]`"],["F-externally_constructed_attr","`#![feature(externally_constructed_attr)]`"],["F-f16_and_f128","`#![feature(f16)]`, `#![feature(f128)]`"],["F-float_semantics","`#![feature(float_semantics)]`"],["F-fmt_debug","`#![feature(fmt_debug)]`"],["F-fn_delegation","`#![feature(fn_delegation)]`"]];export default labelsIndex; \ No newline at end of file +var labelsIndex=[["-Cprefer-dynamic","Codegen option: Prefer dynamic linking to static linking."],["-Zbuild-std","Unstable Cargo option: Compile the standard library yourself."],["-Zdebuginfo-compression","Unstable option: debuginfo compression"],["-Zdwarf-version","Unstable option: set dwarf version"],["-Zfmt-debug","Unstable option: fmt-debug"],["-Zmetrics-dir","Unstable option: metrics directory"],["-Znormalize-docs","Unstable rustdoc option: Normalize/evaluate types when generating docs"],["-Zpolymorphize","Unstable option: Polymorphization."],["-Zrandomize-layout","Unstable option: Randomize the layout of types."],["-Zterminal-urls","Unstable option: emit OSC8 hyperlinks in diagnostics"],["-Zthir-unsafeck","Unstable option: THIR unsafeck"],["-Ztrace-macros","Unstable option: trace-macros"],["-Zvalidate-mir","Unstable option: MIR validation"],["A-ABI","Area: Concerning the application binary interface (ABI)"],["A-allocators","Area: Custom and system allocators"],["A-array","Area: `[T; N]`"],["A-associated-items","Area: Associated items (types, constants & functions)"],["A-async-await","Area: Async & Await"],["A-atomic","Area: Atomics, barriers, and sync primitives"],["A-attributes","Area: Attributes (`#[…]`, `#![…]`)"],["A-auto-traits","Area: auto traits (e.g., `auto trait Send {}`)"],["A-autovectorization","Area: Autovectorization, which can impact perf or code size"],["A-backtrace","Area: Backtraces"],["A-borrow-checker","Area: The borrow checker"],["A-box","Area: Our favorite opsem complication"],["A-cfg","Area: `cfg` conditional compilation"],["A-CI","Area: Our Github Actions CI"],["A-CLI","Area: Command-line interface (CLI) to the compiler"],["A-clippy","Area: Clippy"],["A-closures","Area: Closures (`|…| { … }`)"],["A-code-coverage","Area: Source-based code coverage (-Cinstrument-coverage)"],["A-codegen","Area: Code generation"],["A-coercions","Area: implicit and explicit `expr as Type` coercions"],["A-coherence","Area: Coherence"],["A-coinduction","Area: Concerning coinduction, most often for auto traits"],["A-collections","Area: `std::collection`"],["A-compiletest","Area: The compiletest test runner"],["A-concurrency","Area: Concurrency"],["A-const-eval","Area: Constant evaluation (MIR interpretation)"],["A-const-fn","Area: const fn foo(..) {..}. Pure functions which can be applied at compile time."],["A-const-generics","Area: const generics (parameters and arguments)"],["A-const-prop","Area: Constant propagation"],["A-contributor-roadblock","Area: Makes things more difficult for new contributors to rust itself"],["A-control-flow","Area: Control flow"],["A-coroutines","Area: Coroutines"],["A-cranelift","Things relevant to the [future] cranelift backend"],["A-crate-compat","Area: Impacting SemVer compatibility of crates in the ecosystem"],["A-crates","Area: Crates and their interactions (like crate loading)"],["A-cross","Area: Cross compilation"],["A-cross-crate-reexports","Area: Documentation that has been re-exported from a different crate"],["A-debuginfo","Area: Debugging information in compiled programs (DWARF, PDB, etc.)"],["A-destructors","Area: Destructors (`Drop`, …)"],["A-diagnostics","Area: Messages for errors, warnings, and lints"],["A-doc-alias","Area: `#[doc(alias)]`"],["A-doc-coverage","Area: Calculating how much of a crate has documentation"],["A-docs","Area: documentation for any part of the project, including the compiler, standard library, and tools"],["A-doctests","Area: Documentation tests, run by rustdoc"],["A-download-rustc","Area: The `rust.download-rustc` build option."],["A-driver","Area: rustc_driver that ties everything together into the `rustc` compiler"],["A-DSTs","Area: Dynamically-sized types (DSTs)"],["A-edition-2018-lints","Area: Lints supporting the 2018 edition"],["A-edition-2021","Area: The 2021 edition"],["A-edition-2024","Area: The 2024 edition"],["A-edition-2027","Area: The 2027 edition"],["A-error-codes","Area: Explanation of an error code (--explain)"],["A-error-handling","Area: Error handling"],["A-exhaustiveness-checking","Relating to exhaustiveness / usefulness checking of patterns"],["A-FFI","Area: Foreign function interface (FFI)"],["A-filesystem","Area: `std::fs`"],["A-floating-point","Area: Floating point numbers and arithmetic"],["A-fmt","Area: `std::fmt`"],["A-frontend","Area: Compiler frontend (errors, parsing and HIR)"],["A-GATs","Area: Generic associated types (GATs)"],["A-gcc","Things relevant to the [future] GCC backend"],["A-github-actions","Area: GitHub Actions (GHA)"],["A-grammar","Area: The grammar of Rust"],["A-higher-ranked","Area: Higher-ranked things (e.g., lifetimes, types, trait bounds aka HRTBs)"],["A-HIR","Area: The high-level intermediate representation (HIR)"],["A-impl-trait","Area: `impl Trait`. Universally / existentially quantified anonymous types with static dispatch."],["A-implied-bounds","Area: Implied bounds / inferred outlives-bounds"],["A-incr-comp","Area: Incremental compilation"],["A-inference","Area: Type inference"],["A-inline-assembly","Area: Inline assembly (`asm!(…)`)"],["A-intra-doc-links","Area: Intra-doc links, the ability to link to items in docs by name"],["A-intrinsics","Area: Intrinsics"],["A-io","Area: `std::io`, `std::fs`, `std::net` and `std::path`"],["A-iterators","Area: Iterators"],["A-lang-item","Area: Language items"],["A-layout","Area: Memory layout of types"],["A-lazy-normalization","Area: Lazy normalization (tracking issue: #60471)"],["A-libtest","Area: `#[test]` / the `test` library"],["A-licensing","Area: Compiler licensing"],["A-lifetimes","Area: Lifetimes / regions"],["A-linkage","Area: linking into static, shared libraries and binaries"],["A-lint","Area: Lints (warnings about flaws in source code) such as unused_mut."],["A-LLVM","Area: Code generation parts specific to LLVM. Both correctness bugs and optimization-related issues."],["A-local-reexports","Area: Documentation that has been locally re-exported (i.e., non-cross-crate)"],["A-LTO","Area: Link-time optimization (LTO)"],["A-macros","Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)"],["A-macros-1.2","Area: Declarative macros 1.2"],["A-macros-2.0","Area: Declarative macros 2.0 (#39412)"],["A-markdown-parsing","Area: Markdown parsing for doc-comments"],["A-maybe-future-edition","Something we may consider for a future edition."],["A-meta","Area: Issues & PRs about the rust-lang/rust repository itself"],["A-metadata","Area: Crate metadata"],["A-metrics","Area: Metrics"],["A-MIR","Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html"],["A-mir-opt","Area: MIR optimizations"],["A-mir-opt-inlining","Area: MIR inlining"],["A-mir-opt-nrvo","Fixed by NRVO"],["A-miri","Area: The miri tool"],["A-monomorphization","Area: Monomorphization"],["A-naked","Area: `#[naked]`, prologue and epilogue-free, functions, https://git.io/vAzzS"],["A-NLL","Area: Non-lexical lifetimes (NLL)"],["A-panic","Area: Panicking machinery"],["A-parallel-queries","Area: Parallel query execution"],["A-parser","Area: The parsing of Rust source code to an AST"],["A-patterns","Relating to patterns and pattern matching"],["A-PGO","Area: Profile-guided optimizations (PGO)"],["A-pin","Area: Pin"],["A-plugin","Area: compiler plugins, doc.rust-lang.org/nightly/unstable-book/language-features/plugin.html"],["A-pretty","Area: Pretty printing (including `-Z unpretty`)"],["A-proc-macro-back-compat","Area: Backwards compatibility hacks for proc macros"],["A-proc-macros","Area: Procedural macros"],["A-process","Area: `std::process` and `std::env`"],["A-profile-rt","Area: The profiler runtime for llvm-profdata and llvm-cov"],["A-query-system","Area: The rustc query system (https://rustc-dev-guide.rust-lang.org/query.html)"],["A-raw-pointers","Area: raw pointers, MaybeUninit, NonNull"],["A-repr-c","Issue: `repr(C)` does not work the way it should"],["A-reproducibility","Area: Reproducible / deterministic builds"],["A-resolve","Area: Name resolution"],["A-result-option","Area: Result and Option combinators"],["A-run-make","Area: port run-make Makefiles to rmake.rs"],["A-runtime","Area: std's runtime and \"pre-main\" init for handling backtraces, unwinds, stack overflows"],["A-rust-2018-preview","Area: The 2018 edition preview"],["A-rust-for-linux","Relevant for the Rust-for-Linux project"],["A-rustdoc-js","Area: Rustdoc's JS front-end"],["A-rustdoc-json","Area: Rustdoc JSON backend"],["A-rustdoc-scrape-examples","Area: The (unstable) rustdoc scrape-examples feature described in RFC 3123"],["A-rustdoc-search","Area: Rustdoc's search feature"],["A-rustdoc-themes","Area: Themes for HTML pages generated by rustdoc"],["A-rustdoc-type-layout","Area: `rustdoc --show-type-layout` (nightly-only)"],["A-rustdoc-ui","Area: Rustdoc UI (generated HTML)"],["A-rustfmt","Area: Rustfmt"],["A-sanitizers","Area: Sanitizers for correctness and code quality"],["A-save-analysis","Area: saving results of analyses such as inference and borrowck results to a file."],["A-security","Area: Security (example: address space layout randomization)."],["A-self-profile","Area: Self-profiling feature of the compiler"],["A-SIMD","Area: SIMD (Single Instruction Multiple Data)"],["A-slice","Area: `[T]`"],["A-slice-patterns","Area: Slice patterns, https://github.com/rust-lang/rust/issues/23121"],["A-specialization","Area: Trait impl specialization"],["A-spurious","Area: Spurious failures in builds (spuriously == for no apparent reason)"],["A-stability","Area: `#[stable]`, `#[unstable]` etc."],["A-stack-probe","Area: Stack probing and guard pages"],["A-str","Area: str and String"],["A-strict-provenance","Area: Strict provenance for raw pointers"],["A-suggestion-diagnostics","Area: Suggestions generated by the compiler applied by `cargo fix`"],["A-syntaxext","Area: Syntax extensions"],["A-synthetic-impls","Area: Synthetic impls, used by rustdoc to document auto traits and traits with blanket impls"],["A-target-feature","Area: Enabling/disabling target features like AVX, Neon, etc."],["A-target-specs","Area: Compile-target specifications"],["A-targets","Area: Concerning the implications of different compiler targets"],["A-technical-debt","Area: Internal cleanup work"],["A-test-infra","Area: test infrastructure (may span bootstrap/compiletest/more)"],["A-testsuite","Area: The testsuite used to check the correctness of rustc"],["A-thread","Area: `std::thread`"],["A-thread-locals","Area: Thread local storage (TLS)"],["A-tidy","Area: The tidy tool"],["A-time","Area: Time"],["A-trait-objects","Area: trait objects, vtable layout"],["A-traits","Area: Trait system"],["A-translation","Area: Translation infrastructure, and migrating existing diagnostics to SessionDiagnostic"],["A-type-based-search","Area: Searching rustdoc pages using type signatures"],["A-typesystem","Area: The type system"],["A-unicode","Area: Unicode"],["A-valtree","Area: Value trees or fixed by value trees"],["A-variance","Area: Variance (https://doc.rust-lang.org/nomicon/subtyping.html)"],["A-visibility","Area: Visibility / privacy"],["A-zst","Area: Zero-sized types (ZST)."],["april-1st","Started on the 1st of April"],["AsyncAwait-Polish","Async-await issues that are part of the \"polish\" area"],["AsyncAwait-Triaged","Async-await issues that have been triaged during a working group meeting."],["B-experimental","Blocker: In-tree experiment; RFC pending or unneeded."],["B-MCP-approved","Blocker: Approved by an accepted MCP."],["B-RFC-approved","Blocker: Approved by a merged RFC but not yet implemented."],["B-RFC-implemented","Blocker: Approved by a merged RFC and implemented."],["B-unstable","Blocker: Implemented in the nightly compiler and unstable."],["beta-accepted","Accepted for backporting to the compiler in the beta channel."],["beta-nominated","Nominated for backporting to the compiler in the beta channel."],["C-bug","Category: This is a bug."],["C-cleanup","Category: PRs that clean code up or issues documenting cleanup."],["C-defective-hardware","Category: Issue that was filed as a possible software bug but is actually defective hardware"],["C-discussion","Category: Discussion or questions that doesn't represent real issues."],["C-enhancement","Category: An issue proposing an enhancement or a PR with one."],["C-feature-accepted","Category: A feature request that has been accepted pending implementation."],["C-feature-request","Category: A feature request, i.e: not implemented / a PR."],["C-future-incompatibility","Category: Future-incompatibility lints"],["C-gub","Category: the reverse of a compiler bug is generally UB"],["C-optimization","Category: An issue highlighting optimization opportunities or PRs implementing such"],["C-tracking-issue","Category: A tracking issue for an RFC or an unstable feature."],["call-for-testing","Marks issues that require broader testing from the community, e.g. before stabilization."],["CI-spurious-fail-msvc","CI spurious failure: target env msvc"],["const-generics-bad-diagnostics","An error is correctly emitted, but is confusing, for `min_const_generics`."],["const-generics-fixed-by-const_generics","A bug that has been fixed once `const_generics` is enabled."],["D-confusing","Diagnostics: Confusing error or lint that should be reworked."],["D-crate-version-mismatch","Diagnostics: Errors or lints caused be the use of two different crate versions."],["D-diagnostic-infra","Diagnostics: Issues that affect all diagnostics, or relate to the diagnostic machinery itself."],["D-edition","Diagnostics: An error or lint that should account for edition differences."],["D-imprecise-spans","Diagnostics: spans don't point to exactly the erroneous code"],["D-inconsistent","Diagnostics: Inconsistency in formatting, grammar or style between diagnostic messages."],["D-incorrect","Diagnostics: A diagnostic that is giving misleading or incorrect information."],["D-invalid-suggestion","Diagnostics: A structured suggestion resulting in incorrect code."],["D-newcomer-roadblock","Diagnostics: Confusing error or lint; hard to understand for new users."],["D-papercut","Diagnostics: An error or lint that needs small tweaks."],["D-terse","Diagnostics: An error or lint that doesn't give enough information about the problem at hand."],["D-unicode-unaware","Diagnostics: Diagnostics that are unaware of unicode and trigger codepoint boundary assertions"],["D-verbose","Diagnostics: Too much output caused by a single piece of incorrect code."],["disposition-close","This PR / issue is in PFCP or FCP with a disposition to close it."],["disposition-merge","This issue / PR is in PFCP or FCP with a disposition to merge it."],["disposition-postpone","This issue / PR is in PFCP or FCP with a disposition to postpone it."],["E-easy","Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue."],["E-hard","Call for participation: Hard difficulty. Experience needed to fix: A lot."],["E-help-wanted","Call for participation: Help is requested to fix this issue."],["E-medium","Call for participation: Medium difficulty. Experience needed to fix: Intermediate."],["E-mentor","Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion."],["E-needs-bisection","Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc"],["E-needs-design","This issue needs exploration and design to see how and if we can fix/implement it"],["E-needs-mcve","Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example"],["E-needs-stack","Call for participation: This issue needs a stacktrace."],["E-needs-test","Call for participation: An issue has been fixed and does not reproduce, but no test has been added."],["E-tedious","Call for participation: An issue involves lots of work and is better handled as many small tasks."],["F-abi_c_cmse_nonsecure_call","`#![feature(abi_c_cmse_nonsecure_call)]`"],["F-abi_x86_interrupt",""],["F-adt_const_params","`#![feature(adt_const_params)]`"],["F-anonymous_lifetime_in_impl_trait","`#![feature(anonymous_lifetime_in_impl_trait)]`"],["F-arbitrary_self_types","`#![feature(arbitrary_self_types)]`"],["F-array_repeat","`#![feature(array_repeat)]`"],["F-asm","`#![feature(asm)]` (not `llvm_asm`)"],["F-associated_const_equality","`#![feature(associated_const_equality)]`"],["F-associated_type_bounds","`#![feature(associated_type_bounds)]`"],["F-associated_type_defaults","`#![feature(associated_type_defaults)]`"],["F-async_closure","`#![feature(async_closure)]`"],["F-async_drop","Async drop"],["F-async_fn_in_trait","Static async fn in traits"],["F-async_fn_traits","`#![feature(async_fn_traits)]`"],["F-async_for_loop","`#![feature(async_for_loop)]`"],["F-auto_traits","`#![feature(auto_traits)]`"],["F-autodiff","`#![feature(autodiff)]`"],["F-bindings_after_at","`#![feature(bindings_after_at)]`"],["F-box_patterns","`#![feature(box_patterns)]`"],["F-box_uninit_write",""],["F-bufreader_peek","`#![feature(bufreader_peek)]`"],["F-c_str_literals","`#![feature(c_str_literals)]`"],["F-c_unwind","`#![feature(c_unwind)]`"],["F-c_variadic","`#![feature(c_variadic)]`"],["F-cfg_accessible","`#![feature(cfg_accessible)]`"],["F-cfg_version","`#![feature(cfg_version)]`"],["F-check-cfg","--check-cfg"],["F-closure_lifetime_binder","`#![feature(closure_lifetime_binder)]`"],["F-cmse_nonsecure_entry","`#![feature(cmse_nonsecure_entry)]`"],["F-coerce_unsized","The `CoerceUnsized` trait"],["F-collapse_debuginfo","`#![feature(collapse_debuginfo)]`"],["F-const_async_blocks","`#![feature(const_async_blocks)]`"],["F-const_closures","`#![feature(const_closures)]`"],["F-const_extern_fn","`#![feature(const_extern_fn)]`"],["F-const_generics","`#![feature(const_generics)]`"],["F-const_generics_defaults","`#![feature(const_generics_defaults)]`"],["F-const_heap","`#[feature(const_heap)]`"],["F-const_mut_refs","`#![feature(const_mut_refs)]`"],["F-const_refs_to_cell","`#[feature(const_refs_to_cell)]`"],["F-const_refs_to_static","`#![feature(const_refs_to_static)]`"],["F-const_trait_impl","`#![feature(const_trait_impl)]`"],["F-context_ext","`#![feature(context_ext)]`"],["F-core_intrinsics","Issue in the \"core intrinsics\" for internal usage only."],["F-core_pattern_type","`#![feature(core_pattern_type)]`"],["F-core_pattern_types","`#![feature(core_pattern_types)]`"],["F-coroutine_clone","`#![feature(coroutine_clone)]`"],["F-coroutines","`#![feature(coroutines)]`"],["F-custom_test_frameworks","`#![feature(custom_test_frameworks)]`"],["F-debugger_visualizer","`#![feature(debugger_visualizer)]`"],["F-decl_macro","`#![feature(decl_macro)]`"],["F-default_type_parameter_fallback","`#![feature(default_type_parameter_fallback)]`"],["F-deprecated_safe","`#![feature(deprecated_safe)]`"],["F-deref_patterns","`#![feature(deref_patterns)]`"],["F-derive_smart_pointer","`#![feature(derive_smart_pointer)]`"],["F-destructuring_assignment","`#![feature(destructuring_assignment)]`"],["F-dispatch_from_dyn","`#![feature(dispatch_from_dyn)]`"],["F-doc_auto_cfg","`#![feature(doc_auto_cfg)]`"],["F-doc_cfg","`#![feature(doc_cfg)]`"],["F-doc_masked","`#![feature(doc_masked)]`"],["F-dropck_eyepatch","`#![feature(dropck_eyepatch)]`"],["F-dyn_compatible_for_dispatch","`#![feature(dyn_compatible_for_dispatch)]`; formerly `object_safe_for_ispatch`"],["F-dyn_star","`#![feature(dyn_star)]`"],["F-effects","`#![feature(effects)]`"],["F-exclusive_range_pattern","`#![feature(exclusive_range_pattern)]`"],["F-exhaustive_patterns","`#![feature(exhaustive_patterns)]`"],["F-explicit_tail_calls","`#![feature(explicit_tail_calls)]`"],["F-export_executable_symbols","`#![feature(export_executable_symbols)]`"],["F-extended_key_value_attributes","`#![feature(extended_key_value_attributes)]"]];export default labelsIndex; \ No newline at end of file diff --git a/lib/index/lints.js b/lib/index/lints.js index c216c4d..9266bf3 100644 --- a/lib/index/lints.js +++ b/lib/index/lints.js @@ -1 +1 @@ -var C=["Allow"];const lintsIndex={"unnecessary_owned_empty_strings":["Warn","\n\nDetects cases of owned empty strings being passed as an argument to a function expecting &str\n\n Wh"],"path_ends_with_ext":["Warn","\nLooks for calls to Path::ends_with calls where the argument looks like a file extension.\n\nBy defaul"],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware\nMutexGuard.\n\n Why is this bad?\nThe Mutex "],"ptr_offset_with_cast":["Warn","\nChecks for usage of the offset pointer method with a usize casted to an\nisize.\n\n Why is this bad?\nI"],"range_minus_one":[C[0],"\nChecks for inclusive ranges where 1 is subtracted from\nthe upper bound, e.g., x..=(y-1).\n\n Why is t"],"self_named_module_files":[C[0],"\nChecks that module layout uses only mod.rs files.\n\n Why restrict this?\nHaving multiple module layou"],"unstable_as_slice":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nVec::as_slice is now stable."],"needless_arbitrary_self_type":["Warn","\nThe lint checks for self in fn parameters that\nspecify the Self-type explicitly\n Why is this bad?\nI"],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"format_collect":["Warn","\nChecks for usage of .map(|_| format!(..)).collect::<String>().\n\n Why is this bad?\nThis allocates a "],"pathbuf_init_then_push":[C[0],"\nChecks for calls to push immediately after creating a new PathBuf.\n\n Why is this bad?\nMultiple .joi"],"create_dir":[C[0],"\nChecks usage of std::fs::create_dir and suggest using std::fs::create_dir_all instead.\n\n Why restri"],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"match_wild_err_arm":[C[0],"\nChecks for arm which matches all errors with Err(_)\nand take drastic actions like panic!.\n\n Why is "],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"enum_glob_use":[C[0],"\nChecks for use Enum::*.\n\n Why is this bad?\nIt is usually better style to use the prefixed name of\na"],"ineffective_open_options":["Warn","\nChecks if both .write(true) and .append(true) methods are called\non a same OpenOptions.\n\n Why is th"],"bytes_count_to_len":["Warn","\nIt checks for str::bytes().count() and suggests replacing it with\nstr::len().\n\n Why is this bad?\nst"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"from_raw_with_void_ptr":["Warn","\nChecks if we're passing a c_void raw pointer to {Box,Rc,Arc,Weak}::from_raw(_)\n\n Why is this bad?\nW"],"manual_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"inline_asm_x86_att_syntax":[C[0],"\nChecks for usage of AT&T x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of Int"],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"error_impl_error":[C[0],"\nChecks for types named Error that implement Error.\n\n Why restrict this?\nIt can become confusing whe"],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"infinite_loop":[C[0],"\nChecks for infinite loops in a function where the return type is not !\nand lint accordingly.\n\n Why "],"bool_to_int_with_if":[C[0],"\nInstead of using an if statement to convert a bool to an int,\nthis lint suggests using a from() fun"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why restrict this?\nEspecially fo"],"if_then_some_else_none":[C[0],"\nChecks for if-else that could be written using either bool::then or bool::then_some.\n\n Why restrict"],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"option_map_or_err_ok":["Warn","\nChecks for usage of _.map_or(Err(_), Ok).\n\n Why is this bad?\nReadability, this can be written more "],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"redundant_guards":["Warn","\nChecks for unnecessary guards in match expressions.\n\n Why is this bad?\nIt's more complex and much l"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"implicit_saturating_sub":["Warn","\nChecks for implicit saturating subtraction.\n\n Why is this bad?\nSimplicity and readability. Instead "],"ref_binding_to_reference":[C[0],"\nChecks for ref bindings which create a reference to a reference.\n\n Why is this bad?\nThe address-of "],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"host_endian_bytes":[C[0],"\nChecks for the usage of the to_ne_bytes method and/or the function from_ne_bytes.\n\n Why restrict th"],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"to_string_trait_impl":["Warn","\nChecks for direct implementations of ToString.\n Why is this bad?\nThis trait is automatically implem"],"unconditional_recursion":["Warn","\nChecks that there isn't an infinite recursion in trait\nimplementations.\n\n Why is this bad?\nThis is "],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"from_str_radix_10":["Warn","\n\nChecks for function invocations of the form primitive::from_str_radix(s, 10)\n\n Why is this bad?\n\nT"],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"useless_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"deprecated_clippy_cfg_attr":["Warn","\nChecks for [cfg_attr(feature = \"cargo-clippy\", ...)] and for\n[cfg(feature = \"cargo-clippy\")] and su"],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"manual_unwrap_or_default":["Warn","\nChecks if a match or if let expression can be simplified using\n.unwrap_or_default().\n\n Why is this "],"manual_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"match_overlapping_arm":["Warn","\nChecks for overlapping match arms.\n\n Why is this bad?\nIt is likely to be an error and if not, makes"],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"used_underscore_binding":[C[0],"\nChecks for the use of bindings with a single leading\nunderscore.\n\n Why is this bad?\nA single leadin"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"mixed_read_write_in_expression":[C[0],"\nChecks for a read and a write to the same variable where\nwhether the read occurs before or after th"],"needless_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"byte_char_slices":["Warn","\nChecks for hard to read slices of byte characters, that could be more easily expressed as a\nbyte st"],"fn_params_excessive_bools":[C[0],"\nChecks for excessive use of\nbools in function definitions.\n\n Why is this bad?\nCalls to such functio"],"large_stack_arrays":[C[0],"\nChecks for local arrays that may be too large.\n\n Why is this bad?\nLarge local arrays may cause stac"],"manual_main_separator_str":["Warn","\nChecks for references on std::path::MAIN_SEPARATOR.to_string() used\nto build a &str.\n\n Why is this "],"iter_on_single_items":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on collections containing a single item\n\n Why is t"],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"implied_bounds_in_impls":["Warn","\nLooks for bounds in impl Trait in return position that are implied by other bounds.\nThis can happen"],"large_include_file":[C[0],"\nChecks for the inclusion of large files via include_bytes!()\nor include_str!().\n\n Why restrict this"],"needless_else":["Warn","\nChecks for empty else branches.\n\n Why is this bad?\nAn empty else branch does nothing and can be rem"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"manual_while_let_some":["Warn","\nLooks for loops that check for emptiness of a Vec in the condition and pop an element\nin the body a"],"to_digit_is_some":["Warn","\nChecks for .to_digit(..).is_some() on chars.\n\n Why is this bad?\nThis is a convoluted way of checkin"],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"reversed_empty_ranges":["Deny","\nChecks for range expressions x..y where both x and y\nare constant and x is greater to y. Also trigg"],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"from_iter_instead_of_collect":[C[0],"\nChecks for from_iter() function calls on types that implement the FromIterator\ntrait.\n\n Why is this"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "],"fn_to_numeric_cast_with_truncation":["Warn","\nChecks for casts of a function pointer to a numeric type not wide enough to\nstore an address.\n\n Why"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"suspicious_to_owned":["Warn","\nChecks for the usage of _.to_owned(), on a Cow<'_, _>.\n\n Why is this bad?\nCalling to_owned() on a C"],"unused_collect":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nIterator::collect is now marked as [m"],"wrong_pub_self_convention":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nclippy::wrong_self_convention now cov"],"string_from_utf8_as_bytes":["Warn","\nCheck if the string is transformed to byte array and casted back to string.\n\n Why is this bad?\nIt's"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"borrow_as_ptr":[C[0],"\nChecks for the usage of &expr as *const T or\n&mut expr as *mut T, and suggest using ptr::addr_of or"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numeric\ntype. In this case, negative values wrap arou"],"eager_transmute":["Deny","\nChecks for integer validity checks, followed by a transmute that is (incorrectly) evaluated\neagerly"],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why restrict this?\nThis macro, or panics in general, may be unwanted "],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"impl_hash_borrow_with_str_and_bytes":["Deny","\n\nThis lint is concerned with the semantics of Borrow and Hash for a\ntype that implements all three "],"get_last_with_len":["Warn","\nChecks for usage of x.get(x.len() - 1) instead of\nx.last().\n\n Why is this bad?\nUsing x.last() is ea"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"inverted_saturating_sub":["Deny","\nChecks for comparisons between integers, followed by subtracting the greater value from the\nlower o"],"manual_rotate":["Warn","\n\nIt detects manual bit rotations that could be rewritten using standard\nfunctions rotate_left or ro"],"many_single_char_names":[C[0],"\nChecks for too many variables whose name consists of a\nsingle character.\n\n Why is this bad?\nIt's ha"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type that will definitely truncate the\nvalue.\n\n W"],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"partial_pub_fields":[C[0],"\nChecks whether some but not all fields of a struct are public.\n\nEither make all fields of a type pu"],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"lint_groups_priority":["Deny","\nChecks for lint groups with the same priority as lints in the Cargo.toml\n[[lints] table](https://do"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"same_item_push":["Warn","\nChecks whether a for loop is being used to push a constant\nvalue into a Vec.\n\n Why is this bad?\nThi"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"unnecessary_join":[C[0],"\nChecks for usage of .collect::<Vec<String>>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"unsafe_vector_initialization":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nThe suggested alternative could be su"],"manual_hash_one":["Warn","\nChecks for cases where [BuildHasher::hash_one] can be used.\n\n[BuildHasher::hash_one]: https://doc.r"],"slow_vector_initialization":["Warn","\nChecks slow zero-filled vector initialization\n\n Why is this bad?\nThese structures are non-idiomatic"],"cast_abs_to_unsigned":["Warn","\nChecks for usage of the abs() method that cast the result to unsigned.\n\n Why is this bad?\nThe unsig"],"cast_possible_truncation":[C[0],"\nChecks for casts between numeric types that may\ntruncate large values. This is expected behavior, s"],"iter_nth":["Warn","\nChecks for usage of .iter().nth()/.iter_mut().nth() on standard library types that have\nequivalent "],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"option_map_or_none":["Warn","\nChecks for usage of _.map_or(None, _).\n\n Why is this bad?\nReadability, this can be written more con"],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why restrict this?\nFor some embedded systems or kernel development, "],"iter_skip_zero":["Deny","\nChecks for usage of .skip(0) on iterators.\n\n Why is this bad?\nThis was likely intended to be .skip("],"explicit_into_iter_loop":[C[0],"\nChecks for loops on y.into_iter() where y will do, and\nsuggests the latter.\n\n Why is this bad?\nRead"],"if_let_mutex":["Deny","\nChecks for Mutex::lock calls in if let expression\nwith lock calls in any of the else blocks.\n\n Why "],"non_canonical_clone_impl":["Warn","\nChecks for non-canonical implementations of Clone when Copy is already implemented.\n\n Why is this b"],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"empty_docs":["Warn","\nDetects documentation that is empty.\n Why is this bad?\nEmpty docs clutter code without adding value"],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking an enu"],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"equatable_if_let":[C[0],"\nChecks for pattern matchings that can be expressed using equality.\n\n Why is this bad?\n\n* It reads b"],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"as_ptr_cast_mut":[C[0],"\nChecks for the result of a &self-taking as_ptr being cast to a mutable pointer.\n\n Why is this bad?\n"],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"empty_enum":[C[0],"\nChecks for enums with no variants, which therefore are uninhabited types\n(cannot be instantiated).\n"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"renamed_function_params":[C[0],"\nLints when the name of function parameters from trait impl is\ndifferent than its default implementa"],"extend_from_slice":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nVec::extend_from_slice is no longer f"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"crate_in_macro_def":["Warn","\nChecks for usage of crate as opposed to $crate in a macro definition.\n\n Why is this bad?\ncrate refe"],"const_is_empty":["Warn","\nIt identifies calls to .is_empty() on constant values.\n\n Why is this bad?\nString literals and const"],"into_iter_on_ref":["Warn","\nChecks for into_iter calls on references which should be replaced by iter\nor iter_mut.\n\n Why is thi"],"needless_raw_strings":[C[0],"\nChecks for raw string literals where a string literal can be used instead.\n\n Why restrict this?\nFor"],"manual_let_else":[C[0],"\n\nWarn of cases where let...else could be used\n\n Why is this bad?\n\nlet...else provides a standard co"],"unused_async":[C[0],"\nChecks for functions that are declared async but have no .awaits inside of them.\n\n Why is this bad?"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\n\n Why restric"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"seek_from_current":["Warn","\n\nChecks if the seek method of the Seek trait is called with SeekFrom::Current(0),\nand if it is, sug"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\n\n Why is t"],"blocks_in_conditions":["Warn","\nChecks for if and match conditions that use blocks containing an\nexpression, statements or conditio"],"regex_macro":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nThe regex! macro was removed from the"],"doc_lazy_continuation":["Warn","\n\nIn CommonMark Markdown, the language used to write doc comments, a\nparagraph nested within a list "],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"clone_on_ref_ptr":[C[0],"\nChecks for usage of .clone() on a ref-counted pointer,\n(Rc, Arc, rc::Weak, or sync::Weak), and sugg"],"repeat_vec_with_capacity":["Warn","\nLooks for patterns such as vec![Vec::with_capacity(x); n] or iter::repeat(Vec::with_capacity(x)).\n\n"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"wildcard_enum_match_arm":[C[0],"\nChecks for wildcard enum matches using _.\n\n Why restrict this?\nNew enum variants added by library u"],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"cloned_instead_of_copied":[C[0],"\nChecks for usage of cloned() on an Iterator or Option where\ncopied() could be used instead.\n\n Why i"],"len_without_is_empty":["Warn","\nChecks for items that implement .len() but not\n.is_empty().\n\n Why is this bad?\nIt is good custom to"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"verbose_bit_mask":[C[0],"\nChecks for bit masks that can be replaced by a call\nto trailing_zeros\n\n Why is this bad?\nx.trailing"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop is"],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"manual_try_fold":["Warn","\nChecks for usage of Iterator::fold with a type that implements Try.\n\n Why is this bad?\nThe code sho"],"maybe_infinite_iter":[C[0],"\nChecks for iteration that may be infinite.\n\n Why is this bad?\nWhile there may be places where this "],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"needless_pass_by_value":[C[0],"\nChecks for functions taking arguments by value, but not\nconsuming them in its\nbody.\n\n Why is this b"],"option_filter_map":["Warn","\nChecks for iterators of Options using .filter(Option::is_some).map(Option::unwrap) that may\nbe repl"],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"suspicious_open_options":["Warn","\nChecks for the suspicious use of OpenOptions::create()\nwithout an explicit OpenOptions::truncate()."],"while_float":[C[0],"\nChecks for while loops comparing floating point values.\n\n Why is this bad?\nIf you increment floatin"],"needless_return":["Warn","\nChecks for return statements at the end of a block.\n\n Why is this bad?\nRemoving the return and semi"],"read_zero_byte_vec":[C[0],"\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"zombie_processes":["Warn","\nLooks for code that spawns a process but never calls wait() on the child.\n\n Why is this bad?\nAs exp"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"uninlined_format_args":[C[0],"\nDetect when a variable is not inlined in a format string,\nand suggests to inline it.\n\n Why is this "],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why restrict this?\nThese fu"],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"mem_forget":[C[0],"\nChecks for usage of std::mem::forget(t) where t is\nDrop or has a field that implements Drop.\n\n Why "],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"empty_enum_variants_with_brackets":[C[0],"\nFinds enum variants without fields that are declared with empty brackets.\n\n Why restrict this?\nEmpt"],"iterator_step_by_zero":["Deny","\nChecks for calling .step_by(0) on iterators which panics.\n\n Why is this bad?\nThis very much looks l"],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"mistyped_literal_suffixes":["Deny","\nWarns for mistyped suffix in literals\n\n Why is this bad?\nThis is most probably a typo\n\n Known probl"],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n\n Why restrict this?\nThe ref keyword can be confusing for peo"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why restrict this"],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"unnecessary_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"int_plus_one":["Warn","\nChecks for usage of x >= y + 1 or x - 1 >= y (and <=) in a block\n\n Why is this bad?\nReadability -- "],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"unnecessary_wraps":[C[0],"\nChecks for private functions that only return Ok or Some.\n\n Why is this bad?\nIt is not meaningful t"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"print_with_newline":["Warn","\nThis lint warns when you use print!() with a format\nstring that ends in a newline.\n\n Why is this ba"],"manual_is_variant_and":[C[0],"\nChecks for usage of option.map(f).unwrap_or_default() and result.map(f).unwrap_or_default() where f"],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"redundant_async_block":["Warn","\nChecks for async block that only returns await on a future.\n\n Why is this bad?\nIt is simpler and mo"],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"min_ident_chars":[C[0],"\nChecks for identifiers which consist of a single character (or fewer than the configured threshold)"],"missing_docs_in_private_items":[C[0],"\nWarns if there is missing documentation for any private documentable item.\n\n Why restrict this?\nDoc"],"string_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type String.\n\n Why restrict this?\nThe t"],"legacy_numeric_constants":["Warn","\nChecks for usage of <integer>::max_value(), std::<integer>::MAX,\nstd::<float>::EPSILON, etc.\n\n Why "],"integer_division":[C[0],"\nChecks for division of integers\n\n Why restrict this?\nWhen outside of some very specific algorithms,"],"len_zero":["Warn","\nChecks for getting the length of something via .len()\njust to compare to zero, and suggests using ."],"permissions_set_readonly_false":["Warn","\nChecks for calls to std::fs::Permissions.set_readonly with argument false.\n\n Why is this bad?\nOn Un"],"std_instead_of_core":[C[0],"\nFinds items imported through std when available through core.\n\n Why restrict this?\nCrates which hav"],"macro_use_imports":[C[0],"\nChecks for [macro_use] use....\n\n Why is this bad?\nSince the Rust 2018 edition you can import\nmacro'"],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"struct_excessive_bools":[C[0],"\nChecks for excessive\nuse of bools in structs.\n\n Why is this bad?\nExcessive bools in a struct\nis oft"],"temporary_assignment":["Warn","\nChecks for construction of a structure or tuple just to\nassign a value in it.\n\n Why is this bad?\nRe"],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"single_char_pattern":[C[0],"\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"macro_metavars_in_unsafe":["Warn","\nLooks for macros that expand metavariables in an unsafe block.\n\n Why is this bad?\nThis hides an uns"],"unnecessary_clippy_cfg":["Warn","\nChecks for [cfg_attr(clippy, allow(clippy::lint))]\nand suggests to replace it with [allow(clippy::l"],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"four_forward_slashes":["Warn","\nChecks for outer doc comments written with 4 forward slashes (////).\n\n Why is this bad?\nThis is (pr"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"redundant_at_rest_pattern":["Warn","\nChecks for [all @ ..] patterns.\n\n Why is this bad?\nIn all cases, all works fine and can often make "],"string_add_assign":[C[0],"\nChecks for string appends of the form x = x + y (without\nlet!).\n\n Why is this bad?\nIt's not really "],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"try_err":[C[0],"\nChecks for usage of Err(x)?.\n\n Why restrict this?\nThe ? operator is designed to allow calls that\nca"],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why restrict this?\nThis macro, or panics in general, may be unw"],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"cast_possible_wrap":[C[0],"\nChecks for casts from an unsigned type to a signed type of\nthe same size, or possibly smaller due t"],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit|hexdigit) for check"],"empty_line_after_doc_comments":["Warn","\nChecks for empty lines after doc comments.\n\n Why is this bad?\nThe doc comment may have meant to be "],"join_absolute_paths":["Warn","\nChecks for calls to Path::join that start with a path separator (\\\\ or /).\n\n Why is this bad?\nIf th"],"cmp_null":["Warn","\nThis lint checks for equality comparisons with ptr::null\n\n Why is this bad?\nIt's easier and more re"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"filter_map_bool_then":["Warn","\nChecks for usage of bool::then in Iterator::filter_map.\n\n Why is this bad?\nThis can be written with"],"inspect_for_each":["Warn","\nChecks for usage of inspect().for_each().\n\n Why is this bad?\nIt is the same as performing the compu"],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why restrict this?\nEmpty Drop implementations have no effe"],"filetype_is_file":[C[0],"\nChecks for FileType::is_file().\n\n Why restrict this?\nWhen people testing a file type with FileType:"],"box_default":["Warn","\nchecks for Box::new(Default::default()), which can be written as\nBox::default().\n\n Why is this bad?"],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"iter_not_returning_iterator":[C[0],"\nDetects methods named iter or iter_mut that do not have a return type that implements Iterator.\n\n W"],"iter_over_hash_type":[C[0],"\nThis is a restriction lint which prevents the use of hash types (i.e., HashSet and HashMap) in for "],"diverging_sub_expression":["Warn","\nChecks for diverging calls that are not match arms or\nstatements.\n\n Why is this bad?\nIt is often co"],"option_map_unit_fn":["Warn","\nChecks for usage of option.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"match_single_binding":["Warn","\nChecks for useless match that binds to only one value.\n\n Why is this bad?\nReadability and needless "],"same_functions_in_if_condition":[C[0],"\nChecks for consecutive ifs with the same function call.\n\n Why is this bad?\nThis is probably a copy "],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"derive_partial_eq_without_eq":[C[0],"\nChecks for types that derive PartialEq and could implement Eq.\n\n Why is this bad?\nIf a type T deriv"],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why restrict this?\nexit() imme"],"non_minimal_cfg":["Warn","\nChecks for any and all combinators in cfg with only one condition.\n\n Why is this bad?\nIf there is o"],"panic_in_result_fn":[C[0],"\nChecks for usage of panic! or assertions in a function whose return type is Result.\n\n Why restrict "],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll, std::net::IpAddr or bools"],"clone_on_copy":["Warn","\nChecks for usage of .clone() on a Copy type.\n\n Why is this bad?\nThe only reason Copy types implemen"],"no_effect_replace":["Warn","\nChecks for replace statements which have no effect.\n\n Why is this bad?\nIt's either a mistake or con"],"builtin_type_shadow":["Warn","\nWarns if a generic shadows a built-in type.\n\n Why is this bad?\nThis gives surprising type errors.\n\n"],"str_split_at_newline":[C[0],"\n\nChecks for usages of str.trim().split(\"\\n\") and str.trim().split(\"\\r\\n\").\n\n Why is this bad?\n\nHard"],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer\ntypes, casts of float literals "],"unnecessary_get_then_check":["Warn","\nChecks the usage of .get().is_some() or .get().is_none() on std map types.\n\n Why is this bad?\nIt ca"],"assign_ops":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nCompound operators are harmless and l"],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"too_many_lines":[C[0],"\nChecks for functions with a large amount of lines.\n\n Why is this bad?\nFunctions with a lot of lines"],"vec_init_then_push":["Warn","\nChecks for calls to push immediately after creating a new Vec.\n\nIf the Vec is created using with_ca"],"out_of_bounds_indexing":["Deny","\nChecks for out of bounds array indexing with a constant\nindex.\n\n Why is this bad?\nThis will always "],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"drop_non_drop":["Warn","\nChecks for calls to std::mem::drop with a value that does not implement Drop.\n\n Why is this bad?\nCa"],"replace_consts":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nmin_value and max_value are now depre"],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"map_err_ignore":[C[0],"\nChecks for instances of map_err(|_| Some::Enum)\n\n Why restrict this?\nThis map_err throws away the o"],"cast_enum_constructor":["Warn","\nChecks for casts from an enum tuple constructor to an integer.\n\n Why is this bad?\nThe cast is easil"],"single_match_else":[C[0],"\nChecks for matches with two arms where an if let else will\nusually suffice.\n\n Why is this bad?\nJust"],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n Why restrict this?\nJustifying each allow"],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"enum_clike_unportable_variant":["Deny","\nChecks for C-like enumerations that are\nrepr(isize/usize) and have values that don't fit into an i3"],"expl_impl_clone_on_copy":[C[0],"\nChecks for explicit Clone implementations for Copy\ntypes.\n\n Why is this bad?\nTo avoid surprising be"],"forget_non_drop":["Warn","\nChecks for calls to std::mem::forget with a value that does not implement Drop.\n\n Why is this bad?\n"],"iter_out_of_bounds":["Warn","\nLooks for iterator combinator calls such as .take(x) or .skip(x)\nwhere x is greater than the amount"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::<Result<(), _>().\n\n Why is this bad?\nUsing try_for_each inste"],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"same_name_method":[C[0],"\nIt lints if a struct has two methods with the same name:\none from a trait, another not from a trait"],"vec_box":["Warn","\nChecks for usage of Vec<Box<T>> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"missing_const_for_fn":[C[0],"\nSuggests the use of const in functions and methods where possible.\n\n Why is this bad?\nNot having th"],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"ifs_same_cond":["Deny","\nChecks for consecutive ifs with the same condition.\n\n Why is this bad?\nThis is probably a copy & pa"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"option_as_ref_cloned":[C[0],"\nChecks for usage of .as_ref().cloned() and .as_mut().cloned() on Options\n\n Why is this bad?\nThis ca"],"cast_slice_from_raw_parts":["Warn","\nChecks for a raw slice being cast to a slice pointer\n\n Why is this bad?\nThis can result in multiple"],"redundant_locals":["Deny","\nChecks for redundant redefinitions of local bindings.\n\n Why is this bad?\nRedundant redefinitions of"],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"pointers_in_nomem_asm_block":["Warn","\nChecks if any pointer is being passed to an asm! block with nomem option.\n\n Why is this bad?\nnomem "],"clear_with_drain":[C[0],"\nChecks for usage of .drain(..) for the sole purpose of clearing a container.\n\n Why is this bad?\nThi"],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().<func>() where call to .cloned() can be postponed.\n\n Why is this bad"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"into_iter_without_iter":[C[0],"\nThis is the opposite of the iter_without_into_iter lint.\nIt looks for IntoIterator for (&|&mut) Typ"],"match_str_case_mismatch":["Deny","\nChecks for match expressions modifying the case of a string with non-compliant arms\n\n Why is this b"],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"single_char_lifetime_names":[C[0],"\nChecks for lifetimes with names which are one character\nlong.\n\n Why restrict this?\nA single charact"],"iter_filter_is_some":[C[0],"\nChecks for usage of .filter(Option::is_some) that may be replaced with a .flatten() call.\nThis lint"],"bind_instead_of_map":["Warn","\nChecks for usage of _.and_then(|x| Some(y)), _.and_then(|x| Ok(y))\nor _.or_else(|x| Err(y)).\n\n Why "],"iter_on_empty_collections":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on empty collections\n\n Why is this bad?\n\nIt is sim"],"single_range_in_vec_init":["Warn","\nChecks for Vec or array initializations that contain only one range.\n\n Why is this bad?\nThis is alm"],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"option_as_ref_deref":["Warn","\nChecks for usage of _.as_ref().map(Deref::deref) or its aliases (such as String::as_str).\n\n Why is "],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"needless_range_loop":["Warn","\nChecks for looping over the range of 0..len of some\ncollection just to get the values by index.\n\n W"],"unnecessary_result_map_or_else":["Warn","\nChecks for usage of .map_or_else() \"map closure\" for Result type.\n\n Why is this bad?\nThis can be wr"],"fn_to_numeric_cast_any":[C[0],"\nChecks for casts of a function pointer to any integer type.\n\n Why restrict this?\nCasting a function"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"zero_repeat_side_effects":["Warn","\nChecks for array or vec initializations which call a function or method,\nbut which have a repeat co"],"mem_replace_option_with_none":["Warn","\nChecks for mem::replace() on an Option with\nNone.\n\n Why is this bad?\nOption already has the method "],"transmute_float_to_int":["Warn","\nChecks for transmutes from a float to an integer.\n\n Why is this bad?\nTransmutes are dangerous and e"],"semicolon_outside_block":[C[0],"\n\nSuggests moving the semicolon from a block's final expression outside of the block.\n\n Why restrict"],"transmute_ptr_to_ref":["Warn","\nChecks for transmutes from a pointer to a reference.\n\n Why is this bad?\nThis can always be rewritte"],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"neg_multiply":["Warn","\nChecks for multiplication by -1 as a form of negation.\n\n Why is this bad?\nIt's more readable to jus"],"manual_pattern_char_comparison":["Warn","\nChecks for manual char comparison in string patterns\n\n Why is this bad?\nThis can be written more co"],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"readonly_write_lock":["Warn","\nLooks for calls to RwLock::write where the lock is only used for reading.\n\n Why is this bad?\nThe wr"],"flat_map_identity":["Warn","\nChecks for usage of flat_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more conci"],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"iter_next_loop":["Deny","\nChecks for loops on x.next().\n\n Why is this bad?\nnext() returns either Some(value) if there was a\nv"],"else_if_without_else":[C[0],"\nChecks for usage of if expressions with an else if branch,\nbut without a final else branch.\n\n Why r"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"misrefactored_assign_op":["Warn","\nChecks for a op= a op b or a op= b op a patterns.\n\n Why is this bad?\nMost likely these are bugs whe"],"assertions_on_result_states":[C[0],"\nChecks for assert!(r.is_ok()) or assert!(r.is_err()) calls.\n\n Why restrict this?\nThis form of asser"],"mem_replace_with_default":["Warn","\nChecks for std::mem::replace on a value of type\nT with T::default().\n\n Why is this bad?\nstd::mem mo"],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"only_used_in_recursion":["Warn","\nChecks for arguments that are only used in recursion with no side-effects.\n\n Why is this bad?\nIt co"],"if_same_then_else":["Warn","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"if_not_else":[C[0],"\nChecks for usage of ! or != in an if condition with an\nelse branch.\n\n Why is this bad?\nNegations re"],"type_id_on_box":["Warn","\nLooks for calls to .type_id() on a Box<dyn _>.\n\n Why is this bad?\nThis almost certainly does not do"],"write_with_newline":["Warn","\nThis lint warns when you use write!() with a format\nstring that\nends in a newline.\n\n Why is this ba"],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"vec_resize_to_zero":["Deny","\nFinds occurrences of Vec::resize(0, an_int)\n\n Why is this bad?\nThis is probably an argument inversi"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"verbose_file_reads":[C[0],"\nChecks for usage of File::read_to_end and File::read_to_string.\n\n Why restrict this?\nfs::{read, rea"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"],"rc_buffer":[C[0],"\nChecks for Rc<T> and Arc<T> when T is a mutable buffer type such as String or Vec.\n\n Why restrict t"],"redundant_comparisons":["Deny","\nChecks for ineffective double comparisons against constants.\n\n Why is this bad?\nOnly one of the com"],"missing_inline_in_public_items":[C[0],"\nIt lints if an exported function, method, trait method with default impl,\nor trait method impl is n"],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why restrict this?\nCode without type annotatio"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"new_ret_no_self":["Warn","\nChecks for new not returning a type that contains Self.\n\n Why is this bad?\nAs a convention, new met"],"integer_division_remainder_used":[C[0],"\nChecks for the usage of division (/) and remainder (%) operations\nwhen performed on any integer typ"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first() or x.front().\n\n Why is this bad?\nUsing x.first() "],"iter_next_slice":["Warn","\nChecks for usage of iter().next() on a Slice or an Array\n\n Why is this bad?\nThese can be shortened "],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\n\n Why is this b"],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"nonstandard_macro_braces":[C[0],"\nChecks that common macros are used with consistent bracing.\n\n Why is this bad?\nThis is mostly a con"],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"panicking_overflow_checks":["Deny","\nDetects C-style underflow/overflow checks.\n\n Why is this bad?\nThese checks will, by default, panic "],"str_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type &str.\n\n Why restrict this?\nThe to_"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"result_filter_map":["Warn","\nChecks for iterators of Results using .filter(Result::is_ok).map(Result::unwrap) that may\nbe replac"],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"redundant_closure_for_method_calls":[C[0],"\nChecks for closures which only invoke a method on the closure\nargument and can be replaced by refer"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"reserve_after_initialization":["Warn","\nInforms the user about a more concise way to create a vector with a known capacity.\n\n Why is this b"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"tuple_array_conversions":[C[0],"\nChecks for tuple<=>array conversions that are not done with .into().\n\n Why is this bad?\nIt may be u"],"used_underscore_items":[C[0],"\nChecks for the use of item with a single leading\nunderscore.\n\n Why is this bad?\nA single leading un"],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"seek_to_start_instead_of_rewind":["Warn","\n\nChecks for jumps to the start of a stream that implements Seek\nand uses the seek method providing "],"inline_asm_x86_intel_syntax":[C[0],"\nChecks for usage of Intel x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of AT"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"branches_sharing_code":[C[0],"\nChecks if the if and else block contain shared code that can be\nmoved out of the blocks.\n\n Why is t"],"transmute_int_to_float":["Warn","\nChecks for transmutes from an integer to a float.\n\n Why is this bad?\nTransmutes are dangerous and e"],"needless_pass_by_ref_mut":[C[0],"\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"waker_clone_wake":["Warn","\nChecks for usage of waker.clone().wake()\n\n Why is this bad?\nCloning the waker is not necessary, wak"],"unused_enumerate_index":["Warn","\nChecks for uses of the enumerate method where the index is unused (_)\n\n Why is this bad?\nThe index "],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"std_instead_of_alloc":[C[0],"\nFinds items imported through std when available through alloc.\n\n Why restrict this?\nCrates which ha"],"impossible_comparisons":["Deny","\nChecks for double comparisons that can never succeed\n\n Why is this bad?\nThe whole expression can be"],"misaligned_transmute":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nSplit into clippy::cast_ptr_alignment"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"await_holding_refcell_ref":["Warn","\nChecks for calls to await while holding a RefCell, Ref, or RefMut.\n\n Why is this bad?\nRefCell refs "],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"iter_skip_next":["Warn","\nChecks for usage of .skip(x).next() on iterators.\n\n Why is this bad?\n.nth(x) is cleaner\n\n Example\nr"],"manual_ok_or":[C[0],"\n\nFinds patterns that reimplement Option::ok_or.\n\n Why is this bad?\n\nConcise code helps focusing on "],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why restrict this?\nS"],"result_map_or_into_option":["Warn","\nChecks for usage of _.map_or(None, Some).\n\n Why is this bad?\nReadability, this can be written more "],"transmute_num_to_bytes":["Warn","\nChecks for transmutes from a number to an array of u8\n\n Why this is bad?\nTransmutes are dangerous a"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"unused_self":[C[0],"\nChecks methods that contain a self argument but don't use it\n\n Why is this bad?\nIt may be clearer t"],"manual_bits":["Warn","\nChecks for usage of std::mem::size_of::<T>() * 8 when\nT::BITS is available.\n\n Why is this bad?\nCan "],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"tabs_in_doc_comments":["Warn","\nChecks doc comments for usage of tab characters.\n\n Why is this bad?\nThe rust style-guide promotes s"],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"large_futures":[C[0],"\nIt checks for the size of a Future created by async fn or async {}.\n\n Why is this bad?\nDue to the c"],"let_underscore_untyped":[C[0],"\nChecks for let _ = <expr> without a type annotation, and suggests to either provide one,\nor remove "],"manual_slice_size_calculation":["Warn","\nWhen a is &[T], detect a.len() * size_of::<T>() and suggest size_of_val(a)\ninstead.\n\n Why is this b"],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why restrict this?\nThe results of modulo (%) operation might differ"],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why restrict this?\nSplitting the impleme"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"cast_lossless":[C[0],"\nChecks for casts between numeric types that can be replaced by safe\nconversion functions.\n\n Why is "],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"needless_borrows_for_generic_args":["Warn","\nChecks for borrow operations (&) that are used as a generic argument to a\nfunction when the borrowe"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from T to NonZero<T>, and suggests the new_unchecked\nmethod instead.\n\n Why is"],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"cast_nan_to_int":["Warn","\nChecks for a known NaN float being cast to an integer\n\n Why is this bad?\nNaNs are cast into zero, s"],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why restrict this?\nThe conversion mi"],"allow_attributes":[C[0],"\nChecks for usage of the [allow] attribute and suggests replacing it with\nthe [expect] (See [RFC 238"],"manual_saturating_arithmetic":["Warn","\nChecks for .checked_add/sub(x).unwrap_or(MAX/MIN).\n\n Why is this bad?\nThese can be written simply w"],"rc_clone_in_vec_init":["Warn","\nChecks for reference-counted pointers (Arc, Rc, rc::Weak, and sync::Weak)\nin vec![elem; len]\n\n Why "],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"iter_with_drain":[C[0],"\nChecks for usage of .drain(..) on Vec and VecDeque for iteration.\n\n Why is this bad?\n.into_iter() i"],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"zero_sized_map_values":[C[0],"\nChecks for maps with zero-sized value types anywhere in the code.\n\n Why is this bad?\nSince there is"],"implicit_return":[C[0],"\nChecks for missing return statements at the end of a block.\n\n Why restrict this?\nOmitting the retur"],"size_of_in_element_count":["Deny","\nDetects expressions where\nsize_of::<T> or size_of_val::<T> is used as a\ncount of elements of type T"],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"unstable_as_mut_slice":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nVec::as_mut_slice is now stable."],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers that change their constness, namely *const T to\n*mut T and"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"explicit_iter_loop":[C[0],"\nChecks for loops on x.iter() where &x will do, and\nsuggests the latter.\n\n Why is this bad?\nReadabil"],"let_underscore_must_use":[C[0],"\nChecks for let _ = <expr> where expr is [must_use]\n\n Why restrict this?\nTo ensure that all [must_us"],"needless_pub_self":["Warn","\nChecks for usage of pub(self) and pub(in self).\n\n Why is this bad?\nIt's unnecessary, omitting the p"],"needless_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"result_map_unit_fn":["Warn","\nChecks for usage of result.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why re"],"redundant_as_str":["Warn","\nChecks for usage of as_str() on a String chained with a method available on the String itself.\n\n Wh"],"should_panic_without_expect":[C[0],"\nChecks for [should_panic] attributes without specifying the expected panic message.\n\n Why is this b"],"unsafe_removed_from_name":["Warn","\nChecks for imports that remove \"unsafe\" from an item's\nname.\n\n Why is this bad?\nRenaming makes it l"],"ignored_unit_patterns":[C[0],"\nChecks for usage of _ in patterns of type ().\n\n Why is this bad?\nMatching with () explicitly instea"],"match_on_vec_items":[C[0],"\nChecks for match vec[idx] or match vec[n..m].\n\n Why is this bad?\nThis can panic at runtime.\n\n Examp"],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\n Why is this bad?"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"unnecessary_box_returns":[C[0],"\n\nChecks for a return type containing a Box<T> where T implements Sized\n\nThe lint ignores Box<T> whe"],"incompatible_msrv":["Warn","\n\nThis lint checks that no function newer than the defined MSRV (minimum\nsupported rust version) is "],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"empty_line_after_outer_attr":["Warn","\nChecks for empty lines after outer attributes\n\n Why is this bad?\nThe attribute may have meant to be"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"pub_underscore_fields":[C[0],"\nChecks whether any field of the struct is prefixed with an _ (underscore) and also marked\npub (publ"],"fn_to_numeric_cast":["Warn","\nChecks for casts of function pointers to something other than usize.\n\n Why is this bad?\nCasting a f"],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why restrict this?\nUTF-8 characters span multiple bytes, a"],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"filter_map_identity":["Warn","\nChecks for usage of filter_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more con"],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"non_octal_unix_permissions":["Deny","\nChecks for non-octal values used to set Unix file permissions.\n\n Why is this bad?\nThey will be conv"],"too_long_first_doc_paragraph":["Warn","\nChecks if the first line in the documentation of items listed in module page is too long.\n\n Why is "],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\n\n Why is this ba"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"alloc_instead_of_core":[C[0],"\nFinds items imported through alloc when available through core.\n\n Why restrict this?\nCrates which h"],"mutex_atomic":[C[0],"\nChecks for usage of Mutex<X> where an atomic will do.\n\n Why restrict this?\nUsing a mutex just to ma"],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"missing_enforced_import_renames":["Warn","\nChecks for imports that do not rename the item as specified\nin the enforced-import-renames config o"],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"ref_option_ref":[C[0],"\nChecks for usage of &Option<&T>.\n\n Why is this bad?\nSince & is Copy, it's useless to have a\nreferen"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"bytes_nth":["Warn","\nChecks for the use of .bytes().nth().\n\n Why is this bad?\n.as_bytes().get() is more efficient and mo"],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"match_wildcard_for_single_variants":[C[0],"\nChecks for wildcard enum matches for a single variant.\n\n Why is this bad?\nNew enum variants added b"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"mod_module_files":[C[0],"\nChecks that module layout uses only self named module files; bans mod.rs files.\n\n Why restrict this"],"non_canonical_partial_ord_impl":["Warn","\nChecks for non-canonical implementations of PartialOrd when Ord is already implemented.\n\n Why is th"],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"string_extend_chars":["Warn","\nChecks for the use of .extend(s.chars()) where s is a\n&str or String.\n\n Why is this bad?\n.push_str("],"manual_div_ceil":["Warn","\nChecks for an expression like (x + (y - 1)) / y which is a common manual reimplementation\nof x.div_"],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"manual_inspect":["Warn","\nChecks for uses of map which return the original item.\n\n Why is this bad?\ninspect is both clearer i"],"modulo_one":["Deny","\nChecks for getting the remainder of integer division by one or minus\none.\n\n Why is this bad?\nThe re"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != <float>::INFINITY && x != <float>::NEG_IN"],"multiple_unsafe_ops_per_block":[C[0],"\nChecks for unsafe blocks that contain more than one unsafe operation.\n\n Why restrict this?\nCombined"],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"big_endian_bytes":[C[0],"\nChecks for the usage of the to_be_bytes method and/or the function from_be_bytes.\n\n Why restrict th"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"single_call_fn":[C[0],"\nChecks for functions that are only used once. Does not lint tests.\n\n Why restrict this?\nIf a functi"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"size_of_ref":["Warn","\n\nChecks for calls to std::mem::size_of_val() where the argument is\na reference to a reference.\n\n Wh"],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why restrict this?\nSafe code has no safety requirem"],"range_plus_one":[C[0],"\nChecks for exclusive ranges where 1 is added to the\nupper bound, e.g., x..(y+1).\n\n Why is this bad?"],"iter_cloned_collect":["Warn","\nChecks for the use of .cloned().collect() on slice to\ncreate a Vec.\n\n Why is this bad?\n.to_vec() is"],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"box_collection":["Warn","\nChecks for usage of Box<T> where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why restrict this?\nUsing .. instead is sh"],"manual_split_once":["Warn","\nChecks for usage of str::splitn(2, _)\n\n Why is this bad?\nsplit_once is both clearer in intent and s"],"cfg_not_test":[C[0],"\nChecks for usage of cfg that excludes code from test builds. (i.e., [cfg(not(test))])\n\n Why is this"],"multiple_bound_locations":["Warn","\nCheck if a generic is defined both in the bound predicate and in the where clause.\n\n Why is this ba"],"unnecessary_struct_initialization":[C[0],"\nChecks for initialization of an identical struct from another instance\nof the type, either by copyi"],"field_scoped_visibility_modifiers":[C[0],"\nChecks for usage of scoped visibility modifiers, like pub(crate), on fields. These\nmake a field vis"],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"option_option":[C[0],"\nChecks for usage of Option<Option<_>> in function signatures and type\ndefinitions\n\n Why is this bad"],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"assigning_clones":[C[0],"\nChecks for code like foo = bar.clone();\n\n Why is this bad?\nCustom Clone::clone_from() or ToOwned::c"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"read_line_without_trim":["Deny","\nLooks for calls to [Stdin::read_line] to read a line from the standard input\ninto a string, then la"],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast, from a\nless strictly aligned pointer to a more strictl"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"manual_filter":["Warn","\nChecks for usage of match which could be implemented using filter\n\n Why is this bad?\nUsing the filt"],"cast_precision_loss":[C[0],"\nChecks for casts from any numeric type to a float type where\nthe receiving type cannot store all va"],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers that don't change their\nconstness, namely *const T to *con"],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"transmute_int_to_bool":["Warn","\nChecks for transmutes from an integer to a bool.\n\n Why is this bad?\nThis might result in an invalid"],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why restrict this?\nThis macro, or panics in general, may be u"],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"string_lit_chars_any":[C[0],"\nChecks for <string_lit>.chars().any(|i| i == c).\n\n Why is this bad?\nIt's significantly slower than "],"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"flat_map_option":[C[0],"\nChecks for usage of Iterator::flat_map() where filter_map() could be\nused instead.\n\n Why is this ba"],"return_self_not_must_use":[C[0],"\nThis lint warns when a method returning Self doesn't have the [must_use] attribute.\n\n Why is this b"],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"needless_for_each":[C[0],"\nChecks for usage of for_each that would be more simply written as a\nfor loop.\n\n Why is this bad?\nfo"],"never_loop":["Deny","\nChecks for loops that will always break, return or\ncontinue an outer loop.\n\n Why is this bad?\nThis "],"absolute_paths":[C[0],"\nChecks for usage of items through absolute paths, like std::env::current_dir.\n\n Why restrict this?\n"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"dbg_macro":[C[0],"\nChecks for usage of the [dbg!](https://doc.rust-lang.org/std/macro.dbg.html) macro.\n\n Why restrict "],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"iter_nth_zero":["Warn","\nChecks for the use of iter.nth(0).\n\n Why is this bad?\niter.next() is equivalent to\niter.nth(0), as "],"ref_as_ptr":[C[0],"\nChecks for casts of references to pointer using as\nand suggests std::ptr::from_ref and std::ptr::fr"],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"unwrap_or_default":["Warn","\nChecks for usages of the following functions with an argument that constructs a default value\n(e.g."],"pub_enum_variant_names":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nclippy::enum_variant_names now covers"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"ok_expect":["Warn","\nChecks for usage of ok().expect(..).\n\n Why is this bad?\nBecause you usually call expect() on the Re"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"map_identity":["Warn","\nChecks for instances of map(f) where f is the identity function.\n\n Why is this bad?\nIt can be writt"],"iter_without_into_iter":[C[0],"\nLooks for iter and iter_mut methods without an associated IntoIterator for (&|&mut) Type implementa"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"mut_range_bound":["Warn","\nChecks for loops with a range bound that is a mutable variable.\n\n Why is this bad?\nOne might think "],"multiple_crate_versions":[C[0],"\nChecks to see if multiple versions of a crate are being\nused.\n\n Why is this bad?\nThis bloats the si"],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"impl_trait_in_params":[C[0],"\nLints when impl Trait is being used in a function's parameters.\n\n Why restrict this?\nTurbofish synt"],"items_after_statements":[C[0],"\nChecks for items declared after some statement in a block.\n\n Why is this bad?\nItems live for the en"],"needless_maybe_sized":["Warn","\nLints ?Sized bounds applied to type parameters that cannot be unsized\n\n Why is this bad?\nThe ?Sized"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"unnecessary_unwrap":["Warn","\nChecks for calls of unwrap[_err]() that cannot fail.\n\n Why is this bad?\nUsing if let or match is mo"],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why restrict this?\nThe todo! macro indicates the presence of unfinishe"],"exhaustive_structs":[C[0],"\nWarns on any exported structs that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking a st"],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"transmute_int_to_char":["Warn","\nChecks for transmutes from an integer to a char.\n\n Why is this bad?\nNot every integer is a Unicode "],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation.\n\n Why restrict this?\nTo e"],"transmute_ptr_to_ptr":[C[0],"\nChecks for transmutes from a pointer to a pointer, or\nfrom a reference to a reference.\n\n Why is thi"],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on constant floating-point\nvalues (apart from zero), except in"],"swap_ptr_to_ref":["Warn","\nChecks for calls to core::mem::swap where either parameter is derived from a pointer\n\n Why is this "],"writeln_empty_string":["Warn","\nThis lint warns when you use writeln!(buf, \"\") to\nprint a newline.\n\n Why is this bad?\nYou should us"],"arc_with_non_send_sync":["Warn",".\nThis lint warns when you use Arc with a type that does not implement Send or Sync.\n\n Why is this b"],"assign_op_pattern":["Warn","\nChecks for a = a op b or a = b commutative_op a\npatterns.\n\n Why is this bad?\nThese can be written a"],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"unnecessary_min_or_max":["Warn","\nChecks for unnecessary calls to min() or max() in the following cases\n- Either both side is constan"],"unsafe_derive_deserialize":[C[0],"\nChecks for deriving serde::Deserialize on a type that\nhas methods using unsafe.\n\n Why is this bad?\n"],"mixed_attributes_style":["Warn","\nChecks for items that have the same kind of attributes with mixed styles (inner/outer).\n\n Why is th"],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"zero_divided_by_zero":["Warn","\nChecks for 0.0 / 0.0.\n\n Why is this bad?\nIt's less readable than f32::NAN or f64::NAN.\n\n Example\nru"],"module_name_repetitions":[C[0],"\nDetects type names that are prefixed or suffixed by the\ncontaining module's name.\n\n Why is this bad"],"duplicated_attributes":["Warn","\nChecks for attributes that appear two or more times.\n\n Why is this bad?\nRepeating an attribute on t"],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating the"],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"non_ascii_literal":[C[0],"\nChecks for non-ASCII characters in string and char literals.\n\n Why restrict this?\nYeah, we know, th"],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"large_digit_groups":[C[0],"\nWarns if the digits of an integral or floating-point\nconstant are grouped into groups that\nare too "],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"range_step_by_zero":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nIterator::step_by(0) now panics and i"],"boxed_local":["Warn","\nChecks for usage of Box<T> where an unboxed T would\nwork fine.\n\n Why is this bad?\nThis is an unnece"],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why restric"],"chars_next_cmp":["Warn","\nChecks for usage of .chars().next() on a str to check\nif it starts with a given char.\n\n Why is this"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"short_circuit_statement":["Warn","\nChecks for the use of short circuit boolean conditions as\na\nstatement.\n\n Why is this bad?\nUsing a s"],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"],"rc_mutex":[C[0],"\nChecks for Rc<Mutex<T>>.\n\n Why restrict this?\nRc is used in single thread and Mutex is used in mult"],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an Instant and a Duration.\n\n Why is this bad?\nUnchecked subtraction could"],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"little_endian_bytes":[C[0],"\nChecks for the usage of the to_le_bytes method and/or the function from_le_bytes.\n\n Why restrict th"],"manual_c_str_literals":["Warn","\nChecks for the manual creation of C strings (a string with a NUL byte at the end), either\nthrough o"],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"missing_const_for_thread_local":["Warn","\nSuggests to use const in thread_local! macro if possible.\n Why is this bad?\n\nThe thread_local! macr"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"format_push_string":[C[0],"\nDetects cases where the result of a format! call is\nappended to an existing String.\n\n Why restrict "],"set_contains_or_insert":[C[0],"\nChecks for usage of contains to see if a value is not present\nin a set like HashSet or BTreeSet, fo"],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"chars_last_cmp":["Warn","\nChecks for usage of _.chars().last() or\n_.chars().next_back() on a str to check if it ends with a g"],"default_trait_access":[C[0],"\nChecks for literal calls to Default::default().\n\n Why is this bad?\nIt's easier for the reader if th"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == <float>::INFINITY || x == <float>::NEG_"],"missing_asserts_for_indexing":[C[0],"\nChecks for repeated slice indexing without asserting beforehand that the length\nis greater than the"],"pub_without_shorthand":[C[0],"\nChecks for usage of pub(<loc>) without in.\n\nNote: As you cannot write a module's path in pub(<loc>)"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"needless_return_with_question_mark":["Warn","\nChecks for return statements on Err paired with the ? operator.\n\n Why is this bad?\nThe return is un"],"range_zip_with_len":["Warn","\nChecks for zipping a collection with the range of\n0.._.len().\n\n Why is this bad?\nThe code is better"],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"unused_result_ok":[C[0],"\nChecks for calls to Result::ok() without using the returned Option.\n\n Why is this bad?\nUsing Result"],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"pub_with_shorthand":[C[0],"\nChecks for usage of pub(<loc>) with in.\n\n Why restrict this?\nConsistency. Use it or don't, just be "],"unnecessary_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"manual_clamp":["Warn","\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"serde_api_misuse":["Deny","\nChecks for misuses of the serde API.\n\n Why is this bad?\nSerde is very finicky about how its API sho"],"needless_character_iteration":["Warn","\nChecks if an iterator is used to check if a string is ascii.\n\n Why is this bad?\nThe str type alread"],"should_assert_eq":["None","\n\nNothing. This lint has been deprecated\n\n Deprecation reason\n\nassert!(a == b) can now print the val"],"pub_use":[C[0],"\nRestricts the usage of pub use ...\n\n Why restrict this?\nA project may wish to limit pub use instanc"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"transmute_bytes_to_str":["Warn","\nChecks for transmutes from a &[u8] to a &str.\n\n Why is this bad?\nNot every byte slice is a valid UT"],"no_mangle_with_rust_abi":[C[0],"\nChecks for Rust ABI functions with the [no_mangle] attribute.\n\n Why is this bad?\nThe Rust ABI is no"],"let_underscore_future":["Warn","\nChecks for let _ = <expr> where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"ptr_eq":["Warn","\nUse std::ptr::eq when applicable\n\n Why is this bad?\nptr::eq can be used to compare &T references\n(w"],"mutex_integer":[C[0],"\nChecks for usage of Mutex<X> where X is an integral\ntype.\n\n Why is this bad?\nUsing a mutex just to "],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"test_attr_in_doctest":["Warn","\nChecks for [test] in doctests unless they are marked with\neither ignore, no_run or compile_fail.\n\n "],"needless_raw_string_hashes":[C[0],"\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"unnecessary_map_on_constructor":["Warn","\nSuggests removing the use of a map() (or map_err()) method when an Option or Result\nis being constr"],"non_send_fields_in_send_ty":[C[0],"\nThis lint warns about a Send implementation for a type that\ncontains fields that are not safe to be"],"println_empty_string":["Warn","\nThis lint warns when you use println!(\"\") to\nprint a newline.\n\n Why is this bad?\nYou should use pri"],"single_element_loop":["Warn","\nChecks whether a for loop has a single element.\n\n Why is this bad?\nThere is no reason to have a loo"],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why restrict this?\nWithout a good custom messag"],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"manual_next_back":["Warn","\nChecks for .rev().next() on a DoubleEndedIterator\n\n Why is this bad?\n.next_back() is cleaner.\n\n Exa"],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version. Also a"],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"unnecessary_self_imports":[C[0],"\nChecks for imports ending in ::{self}.\n\n Why restrict this?\nIn most cases, this can be written much"],"borrowed_box":["Warn","\nChecks for usage of &Box<T> anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"iter_filter_is_ok":[C[0],"\nChecks for usage of .filter(Result::is_ok) that may be replaced with a .flatten() call.\nThis lint w"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\n\n Why is t"],"struct_field_names":[C[0],"\nDetects struct fields that are prefixed or suffixed\nby the same characters or the name of the struc"],"match_as_ref":["Warn","\nChecks for match which is used to add a reference to an\nOption value.\n\n Why is this bad?\nUsing as_r"],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"uninhabited_references":[C[0],"\nIt detects references to uninhabited types, such as ! and\nwarns when those are either dereferenced "],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"missing_transmute_annotations":["Warn","\nChecks if transmute calls have all generics specified.\n\n Why is this bad?\nIf not set, some unexpect"],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"transmutes_expressible_as_ptr_casts":["Warn","\nChecks for transmutes that could be a pointer cast.\n\n Why is this bad?\nReadability. The code tricks"],"unnecessary_fallible_conversions":["Warn","\nChecks for calls to TryInto::try_into and TryFrom::try_from when their infallible counterparts\ncoul"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"]};export default lintsIndex; \ No newline at end of file +var C=["Allow","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe avoid_breaking_exported_api config","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been replaced by manual_","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by rustc"];const lintsIndex={"should_panic_without_expect":[C[0],"\nChecks for [should_panic] attributes without specifying the expected panic message.\n\n Why is this b"],"match_bool":[C[0],"\nChecks for matches where match expression is a bool. It\nsuggests to replace the expression with an "],"trivial_regex":[C[0],"\nChecks for trivial [regex](https://crates.io/crates/regex)\ncreation (with Regex::new, RegexBuilder:"],"unit_cmp":["Deny","\nChecks for comparisons to unit. This includes all binary\ncomparisons (like == and <) and asserts.\n\n"],"unused_async":[C[0],"\nChecks for functions that are declared async but have no .awaits inside of them.\n\n Why is this bad?"],"unused_enumerate_index":["Warn","\nChecks for uses of the enumerate method where the index is unused (_)\n\n Why is this bad?\nThe index "],"useless_vec":["Warn","\nChecks for usage of vec![..] when using [..] would\nbe possible.\n\n Why is this bad?\nThis is less eff"],"iter_kv_map":["Warn","\n\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is "],"manual_is_finite":["Warn","\nChecks for manual is_finite reimplementations\n(i.e., x != <float>::INFINITY && x != <float>::NEG_IN"],"lines_filter_map_ok":["Warn","\nChecks for usage of lines.filter_map(Result::ok) or lines.flat_map(Result::ok)\nwhen lines has type "],"write_literal":["Warn","\nThis lint warns about the use of literals as write!/writeln! args.\n\n Why is this bad?\nUsing literal"],"comparison_to_empty":["Warn","\nChecks for comparing to an empty slice such as \"\" or [],\nand suggests using .is_empty() where appli"],"ineffective_bit_mask":["Deny","\nChecks for bit masks in comparisons which can be removed\nwithout changing the outcome. The basic st"],"duplicate_mod":["Warn","\nChecks for files that are included as modules multiple times.\n\n Why is this bad?\nLoading a file as "],"min_ident_chars":[C[0],"\nChecks for identifiers which consist of a single character (or fewer than the configured threshold)"],"or_fun_call":[C[0],"\nChecks for calls to .or(foo(..)), .unwrap_or(foo(..)),\n.or_insert(foo(..)) etc., and suggests to us"],"useless_attribute":["Deny","\nChecks for extern crate and use items annotated with\nlint attributes.\n\nThis lint permits lint attri"],"needless_return_with_question_mark":["Warn","\nChecks for return statements on Err paired with the ? operator.\n\n Why is this bad?\nThe return is un"],"out_of_bounds_indexing":["Deny","\nChecks for out of bounds array indexing with a constant\nindex.\n\n Why is this bad?\nThis will always "],"duplicate_underscore_argument":["Warn","\nChecks for function arguments having the similar names\ndiffering by an underscore.\n\n Why is this ba"],"repeat_once":["Warn","\nChecks for usage of .repeat(1) and suggest the following method for each types.\n- .to_string() for "],"short_circuit_statement":["Warn","\nChecks for the use of short circuit boolean conditions as\na\nstatement.\n\n Why is this bad?\nUsing a s"],"single_char_lifetime_names":[C[0],"\nChecks for lifetimes with names which are one character\nlong.\n\n Why restrict this?\nA single charact"],"suspicious_map":["Warn","\nChecks for calls to map followed by a count.\n\n Why is this bad?\nIt looks suspicious. Maybe map was "],"unreachable":[C[0],"\nChecks for usage of unreachable!.\n\n Why restrict this?\nThis macro, or panics in general, may be unw"],"derive_partial_eq_without_eq":[C[0],"\nChecks for types that derive PartialEq and could implement Eq.\n\n Why is this bad?\nIf a type T deriv"],"regex_macro":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe regex! macro does not exist anymor"],"map_entry":["Warn","\nChecks for usage of contains_key + insert on HashMap\nor BTreeMap.\n\n Why is this bad?\nUsing entry is"],"skip_while_next":["Warn","\nChecks for usage of _.skip_while(condition).next().\n\n Why is this bad?\nReadability, this can be wri"],"filetype_is_file":[C[0],"\nChecks for FileType::is_file().\n\n Why restrict this?\nWhen people testing a file type with FileType:"],"unconditional_recursion":["Warn","\nChecks that there isn't an infinite recursion in trait\nimplementations.\n\n Why is this bad?\nThis is "],"unneeded_wildcard_pattern":["Warn","\nChecks for tuple patterns with a wildcard\npattern (_) is next to a rest pattern (..).\n\n_NOTE_: Whil"],"unwrap_used":[C[0],"\nChecks for .unwrap() or .unwrap_err() calls on Results and .unwrap() call on Options.\n\n Why restric"],"verbose_file_reads":[C[0],"\nChecks for usage of File::read_to_end and File::read_to_string.\n\n Why restrict this?\nfs::{read, rea"],"doc_link_with_quotes":[C[0],"\nDetects the syntax ['foo'] in documentation comments (notice quotes instead of backticks)\noutside o"],"cast_slice_different_sizes":["Deny","\nChecks for as casts between raw pointers to slices with differently sized elements.\n\n Why is this b"],"cast_slice_from_raw_parts":["Warn","\nChecks for a raw slice being cast to a slice pointer\n\n Why is this bad?\nThis can result in multiple"],"items_after_test_module":["Warn","\nTriggers if an item is declared after the testing module marked with [cfg(test)].\n Why is this bad?"],"question_mark_used":[C[0],"\nChecks for expressions that use the question mark operator and rejects them.\n\n Why restrict this?\nS"],"mem_replace_with_uninit":["Deny","\nChecks for mem::replace(&mut _, mem::uninitialized())\nand mem::replace(&mut _, mem::zeroed()).\n\n Wh"],"mem_replace_with_default":["Warn","\nChecks for std::mem::replace on a value of type\nT with T::default().\n\n Why is this bad?\nstd::mem mo"],"print_with_newline":["Warn","\nThis lint warns when you use print!() with a format\nstring that ends in a newline.\n\n Why is this ba"],"replace_consts":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nAssociated-constants are now preferred"],"impl_hash_borrow_with_str_and_bytes":["Deny","\n\nThis lint is concerned with the semantics of Borrow and Hash for a\ntype that implements all three "],"macro_metavars_in_unsafe":["Warn","\nLooks for macros that expand metavariables in an unsafe block.\n\n Why is this bad?\nThis hides an uns"],"while_let_on_iterator":["Warn","\nChecks for while let expressions on iterators.\n\n Why is this bad?\nReadability. A simple for loop is"],"err_expect":["Warn","\nChecks for .err().expect() calls on the Result type.\n\n Why is this bad?\n.expect_err() can be called"],"cast_enum_truncation":["Warn","\nChecks for casts from an enum type to an integral type which will definitely truncate the\nvalue.\n\n "],"cast_nan_to_int":["Warn","\nChecks for a known NaN float being cast to an integer\n\n Why is this bad?\nNaNs are cast into zero, s"],"significant_drop_in_scrutinee":[C[0],"\nChecks for temporaries returned from function calls in a match scrutinee that have the\nclippy::has_"],"test_attr_in_doctest":["Warn","\nChecks for [test] in doctests unless they are marked with\neither ignore, no_run or compile_fail.\n\n "],"manual_instant_elapsed":[C[0],"\nLints subtraction between Instant::now() and another Instant.\n\n Why is this bad?\nIt is easy to acci"],"significant_drop_tightening":[C[0],"\n\nSearches for elements marked with [clippy::has_significant_drop] that could be early\ndropped but a"],"write_with_newline":["Warn","\nThis lint warns when you use write!() with a format\nstring that\nends in a newline.\n\n Why is this ba"],"identity_op":["Warn","\nChecks for identity operations, e.g., x + 0.\n\n Why is this bad?\nThis code can be removed without ch"],"vec_resize_to_zero":["Deny","\nFinds occurrences of Vec::resize(0, an_int)\n\n Why is this bad?\nThis is probably an argument inversi"],"manual_main_separator_str":["Warn","\nChecks for references on std::path::MAIN_SEPARATOR.to_string() used\nto build a &str.\n\n Why is this "],"diverging_sub_expression":["Warn","\nChecks for diverging calls that are not match arms or\nstatements.\n\n Why is this bad?\nIt is often co"],"invalid_regex":["Deny","\nChecks [regex](https://crates.io/crates/regex) creation\n(with Regex::new, RegexBuilder::new, or Reg"],"non_minimal_cfg":["Warn","\nChecks for any and all combinators in cfg with only one condition.\n\n Why is this bad?\nIf there is o"],"string_extend_chars":["Warn","\nChecks for the use of .extend(s.chars()) where s is a\n&str or String.\n\n Why is this bad?\n.push_str("],"transmutes_expressible_as_ptr_casts":["Warn","\nChecks for transmutes that could be a pointer cast.\n\n Why is this bad?\nReadability. The code tricks"],"neg_multiply":["Warn","\nChecks for multiplication by -1 as a form of negation.\n\n Why is this bad?\nIt's more readable to jus"],"manual_async_fn":["Warn","\nIt checks for manual implementations of async functions.\n\n Why is this bad?\nIt's more idiomatic to "],"print_literal":["Warn","\nThis lint warns about the use of literals as print!/println! args.\n\n Why is this bad?\nUsing literal"],"missing_transmute_annotations":["Warn","\nChecks if transmute calls have all generics specified.\n\n Why is this bad?\nIf not set, some unexpect"],"octal_escapes":["Warn","\nChecks for \\0 escapes in string and byte literals that look like octal\ncharacter escapes in C.\n\n Wh"],"same_name_method":[C[0],"\nIt lints if a struct has two methods with the same name:\none from a trait, another not from trait.\n"],"cast_ptr_alignment":[C[0],"\nChecks for casts, using as or pointer::cast,\nfrom a less-strictly-aligned pointer to a more-strictl"],"let_underscore_future":["Warn","\nChecks for let _ = <expr> where the resulting type of expr implements Future\n\n Why is this bad?\nFut"],"useless_conversion":["Warn","\nChecks for Into, TryInto, From, TryFrom, or IntoIter calls\nwhich uselessly convert to the same type"],"match_single_binding":["Warn","\nChecks for useless match that binds to only one value.\n\n Why is this bad?\nReadability and needless "],"unused_format_specs":["Warn","\nDetects [formatting parameters] that have no effect on the output of\nformat!(), println!() or simil"],"unnested_or_patterns":[C[0],"\nChecks for unnested or-patterns, e.g., Some(0) | Some(2) and\nsuggests replacing the pattern with a "],"reserve_after_initialization":["Warn","\nInforms the user about a more concise way to create a vector with a known capacity.\n\n Why is this b"],"little_endian_bytes":[C[0],"\nChecks for the usage of the to_le_bytes method and/or the function from_le_bytes.\n\n Why restrict th"],"extend_with_drain":["Warn","\nChecks for occurrences where one vector gets extended instead of append\n\n Why is this bad?\nUsing ap"],"serde_api_misuse":["Deny","\nChecks for misuses of the serde API.\n\n Why is this bad?\nSerde is very finicky about how its API sho"],"int_plus_one":["Warn","\nChecks for usage of x >= y + 1 or x - 1 >= y (and <=) in a block\n\n Why is this bad?\nReadability -- "],"ptr_offset_with_cast":["Warn","\nChecks for usage of the offset pointer method with a usize casted to an\nisize.\n\n Why is this bad?\nI"],"string_lit_as_bytes":[C[0],"\nChecks for the as_bytes method called on string literals\nthat contain only ASCII characters.\n\n Why "],"cast_abs_to_unsigned":["Warn","\nChecks for usage of the abs() method that cast the result to unsigned.\n\n Why is this bad?\nThe unsig"],"deprecated_clippy_cfg_attr":["Warn","\nChecks for [cfg_attr(feature = \"cargo-clippy\", ...)] and for\n[cfg(feature = \"cargo-clippy\")] and su"],"float_cmp":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalues (apart from zero), except in function"],"float_equality_without_abs":["Warn","\nChecks for statements of the form (a - b) < f32::EPSILON or\n(a - b) < f64::EPSILON. Notes the missi"],"useless_let_if_seq":[C[0],"\nChecks for variable declarations immediately followed by a\nconditional affectation.\n\n Why is this b"],"needless_pass_by_ref_mut":[C[0],"\nCheck if a &mut function argument is actually used mutably.\n\nBe careful if the function is publicly"],"same_functions_in_if_condition":[C[0],"\nChecks for consecutive ifs with the same function call.\n\n Why is this bad?\nThis is probably a copy "],"while_let_loop":["Warn","\nDetects loop + match combinations that are easier\nwritten as a while let loop.\n\n Why is this bad?\nT"],"missing_spin_loop":["Warn","\nChecks for empty spin loops\n\n Why is this bad?\nThe loop body should have something like thread::par"],"single_call_fn":[C[0],"\nChecks for functions that are only used once. Does not lint tests.\n\n Why restrict this?\nIf a functi"],"manual_split_once":["Warn","\nChecks for usage of str::splitn(2, _)\n\n Why is this bad?\nsplit_once is both clearer in intent and s"],"declare_interior_mutable_const":["Warn","\nChecks for declaration of const items which is interior\nmutable (e.g., contains a Cell, Mutex, Atom"],"unnecessary_self_imports":[C[0],"\nChecks for imports ending in ::{self}.\n\n Why restrict this?\nIn most cases, this can be written much"],"multiple_bound_locations":["Warn","\nCheck if a generic is defined both in the bound predicate and in the where clause.\n\n Why is this ba"],"main_recursion":["Warn","\nChecks for recursion using the entrypoint.\n\n Why is this bad?\nApart from special setups (which we c"],"mismatching_type_param_order":[C[0],"\nChecks for type parameters which are positioned inconsistently between\na type definition and impl b"],"manual_rem_euclid":["Warn","\nChecks for an expression like ((x % 4) + 4) % 4 which is a common manual reimplementation\nof x.rem_"],"needless_return":["Warn","\nChecks for return statements at the end of a block.\n\n Why is this bad?\nRemoving the return and semi"],"separated_literal_suffix":[C[0],"\nWarns if literal suffixes are separated by an underscore.\nTo enforce separated literal suffix style"],"uninit_assumed_init":["Deny","\nChecks for MaybeUninit::uninit().assume_init().\n\n Why is this bad?\nFor most types, this is undefine"],"manual_find":["Warn","\nChecks for manual implementations of Iterator::find\n\n Why is this bad?\nIt doesn't affect performanc"],"pub_underscore_fields":[C[0],"\nChecks whether any field of the struct is prefixed with an _ (underscore) and also marked\npub (publ"],"result_filter_map":["Warn","\nChecks for iterators of Results using .filter(Result::is_ok).map(Result::unwrap) that may\nbe replac"],"size_of_in_element_count":["Deny","\nDetects expressions where\nsize_of::<T> or size_of_val::<T> is used as a\ncount of elements of type T"],"manual_is_ascii_check":["Warn","\nSuggests to use dedicated built-in methods,\nis_ascii_(lowercase|uppercase|digit|hexdigit) for check"],"manual_rotate":["Warn","\n\nIt detects manual bit rotations that could be rewritten using standard\nfunctions rotate_left or ro"],"needless_borrowed_reference":["Warn","\nChecks for bindings that needlessly destructure a reference and borrow the inner\nvalue with &ref.\n\n"],"rc_clone_in_vec_init":["Warn","\nChecks for reference-counted pointers (Arc, Rc, rc::Weak, and sync::Weak)\nin vec![elem; len]\n\n Why "],"ptr_as_ptr":[C[0],"\nChecks for as casts between raw pointers without changing its mutability,\nnamely *const T to *const"],"ptr_eq":["Warn","\nUse std::ptr::eq when applicable\n\n Why is this bad?\nptr::eq can be used to compare &T references\n(w"],"redundant_feature_names":[C[0],"\nChecks for feature names with prefix use-, with- or suffix -support\n\n Why is this bad?\nThese prefix"],"suspicious_op_assign_impl":["Warn","\nLints for suspicious operations in impls of OpAssign, e.g.\nsubtracting elements in an AddAssign imp"],"read_zero_byte_vec":[C[0],"\nThis lint catches reads into a zero-length Vec.\nEspecially in the case of a call to with_capacity, "],"string_slice":[C[0],"\nChecks for slice operations on strings\n\n Why restrict this?\nUTF-8 characters span multiple bytes, a"],"unsafe_removed_from_name":["Warn","\nChecks for imports that remove \"unsafe\" from an item's\nname.\n\n Why is this bad?\nRenaming makes it l"],"wrong_pub_self_convention":["None",C[1]],"tests_outside_test_module":[C[0],"\nTriggers when a testing function (marked with the [test] attribute) isn't inside a testing module\n("],"wrong_transmute":["Deny","\nChecks for transmutes that can't ever be correct on any\narchitecture.\n\n Why is this bad?\nIt's basic"],"manual_inspect":["Warn","\nChecks for uses of map which return the original item.\n\n Why is this bad?\ninspect is both clearer i"],"collapsible_if":["Warn","\nChecks for nested if statements which can be collapsed\nby &&-combining their conditions.\n\n Why is t"],"into_iter_on_ref":["Warn","\nChecks for into_iter calls on references which should be replaced by iter\nor iter_mut.\n\n Why is thi"],"redundant_locals":["Deny","\nChecks for redundant redefinitions of local bindings.\n\n Why is this bad?\nRedundant redefinitions of"],"pub_enum_variant_names":["None",C[1]],"bool_to_int_with_if":[C[0],"\nInstead of using an if statement to convert a bool to an int,\nthis lint suggests using a from() fun"],"assign_ops":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint is too subjective, not havin"],"assertions_on_constants":["Warn","\nChecks for assert!(true) and assert!(false) calls.\n\n Why is this bad?\nWill be optimized out by the "],"explicit_counter_loop":["Warn","\nChecks for loops over slices with an explicit counter\nand suggests the use of .enumerate().\n\n Why i"],"float_cmp_const":[C[0],"\nChecks for (in-)equality comparisons on floating-point\nvalue and constant, except in functions call"],"future_not_send":[C[0],"\nThis lint requires Future implementations returned from\nfunctions and methods to implement the Send"],"implicit_saturating_sub":["Warn","\nChecks for implicit saturating subtraction.\n\n Why is this bad?\nSimplicity and readability. Instead "],"semicolon_outside_block":[C[0],"\n\nSuggests moving the semicolon from a block's final expression outside of the block.\n\n Why restrict"],"unnecessary_owned_empty_strings":["Warn","\n\nDetects cases of owned empty strings being passed as an argument to a function expecting &str\n\n Wh"],"type_repetition_in_bounds":[C[0],"\nThis lint warns about unnecessary type repetitions in trait bounds\n\n Why is this bad?\nRepeating the"],"char_lit_as_u8":["Warn","\nChecks for expressions where a character literal is cast\nto u8 and suggests using a byte literal in"],"unused_collect":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint has been superseded by [must"],"manual_try_fold":["Warn","\nChecks for usage of Iterator::fold with a type that implements Try.\n\n Why is this bad?\nThe code sho"],"unused_peekable":[C[0],"\nChecks for the creation of a peekable iterator that is never .peek()ed\n\n Why is this bad?\nCreating "],"useless_format":["Warn","\nChecks for the use of format!(\"string literal with no\nargument\") and format!(\"{}\", foo) where foo i"],"non_ascii_literal":[C[0],"\nChecks for non-ASCII characters in string and char literals.\n\n Why restrict this?\nYeah, we know, th"],"mutex_atomic":[C[0],"\nChecks for usage of Mutex<X> where an atomic will do.\n\n Why restrict this?\nUsing a mutex just to ma"],"no_effect_underscore_binding":[C[0],"\nChecks for binding to underscore prefixed variable without side-effects.\n\n Why is this bad?\nUnlike "],"result_map_unit_fn":["Warn","\nChecks for usage of result.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"redundant_at_rest_pattern":["Warn","\nChecks for [all @ ..] patterns.\n\n Why is this bad?\nIn all cases, all works fine and can often make "],"repeat_vec_with_capacity":["Warn","\nLooks for patterns such as vec![Vec::with_capacity(x); n] or iter::repeat(Vec::with_capacity(x)).\n\n"],"if_same_then_else":["Warn","\nChecks for if/else with the same body as the *then* part\nand the *else* part.\n\n Why is this bad?\nTh"],"redundant_else":[C[0],"\nChecks for else blocks that can be removed without changing semantics.\n\n Why is this bad?\nThe else "],"suspicious_command_arg_space":["Warn","\n\nChecks for Command::arg() invocations that look like they\nshould be multiple arguments instead, su"],"unnecessary_result_map_or_else":["Warn","\nChecks for usage of .map_or_else() \"map closure\" for Result type.\n\n Why is this bad?\nThis can be wr"],"while_immutable_condition":["Deny","\nChecks whether variables used within while loop condition\ncan be (and are) mutated in the body.\n\n W"],"if_not_else":[C[0],"\nChecks for usage of ! or != in an if condition with an\nelse branch.\n\n Why is this bad?\nNegations re"],"into_iter_without_iter":[C[0],"\nThis is the opposite of the iter_without_into_iter lint.\nIt looks for IntoIterator for (&|&mut) Typ"],"collapsible_else_if":["Warn","\nChecks for collapsible else { if ... } expressions\nthat can be collapsed to else if ....\n\n Why is t"],"manual_while_let_some":["Warn","\nLooks for loops that check for emptiness of a Vec in the condition and pop an element\nin the body a"],"excessive_precision":["Warn","\nChecks for float literals with a precision greater\nthan that supported by the underlying type.\n\n Wh"],"misaligned_transmute":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint should never have applied to"],"redundant_async_block":["Warn","\nChecks for async block that only returns await on a future.\n\n Why is this bad?\nIt is simpler and mo"],"temporary_assignment":["Warn","\nChecks for construction of a structure or tuple just to\nassign a value in it.\n\n Why is this bad?\nRe"],"get_unwrap":[C[0],"\nChecks for usage of .get().unwrap() (or\n.get_mut().unwrap) on a standard library type which impleme"],"get_last_with_len":["Warn","\nChecks for usage of x.get(x.len() - 1) instead of\nx.last().\n\n Why is this bad?\nUsing x.last() is ea"],"manual_filter_map":["Warn","\nChecks for usage of _.filter(_).map(_) that can be written more simply\nas filter_map(_).\n\n Why is t"],"debug_assert_with_mut_call":[C[0],"\nChecks for function/method calls with a mutable\nparameter in debug_assert!, debug_assert_eq! and de"],"option_as_ref_deref":["Warn","\nChecks for usage of _.as_ref().map(Deref::deref) or its aliases (such as String::as_str).\n\n Why is "],"unusual_byte_groupings":["Warn","\nWarns if hexadecimal or binary literals are not grouped\nby nibble or byte.\n\n Why is this bad?\nNegat"],"ptr_cast_constness":[C[0],"\nChecks for as casts between raw pointers which change its constness, namely *const T to\n*mut T and "],"nonminimal_bool":["Warn","\nChecks for boolean expressions that can be written more\nconcisely.\n\n Why is this bad?\nReadability o"],"redundant_clone":[C[0],"\nChecks for a redundant clone() (and its relatives) which clones an owned\nvalue that is going to be "],"derived_hash_with_manual_eq":["Deny","\nLints against manual PartialEq implementations for types with a derived Hash\nimplementation.\n\n Why "],"bad_bit_mask":["Deny","\nChecks for incompatible bit masks in comparisons.\n\nThe formula for detecting if an expression of th"],"needless_option_take":["Warn","\nChecks for calling take function after as_ref.\n\n Why is this bad?\nRedundant code. take writes None "],"panic":[C[0],"\nChecks for usage of panic!.\n\n Why restrict this?\nThis macro, or panics in general, may be unwanted "],"field_reassign_with_default":["Warn","\nChecks for immediate reassignment of fields initialized\nwith Default::default().\n\n Why is this bad?"],"option_map_unit_fn":["Warn","\nChecks for usage of option.map(f) where f is a function\nor closure that returns the unit type ().\n\n"],"infinite_iter":["Deny","\nChecks for iteration that is guaranteed to be infinite.\n\n Why is this bad?\nWhile there may be place"],"mistyped_literal_suffixes":["Deny","\nWarns for mistyped suffix in literals\n\n Why is this bad?\nThis is most probably a typo\n\n Known probl"],"naive_bytecount":[C[0],"\nChecks for naive byte counts\n\n Why is this bad?\nThe [bytecount](https://crates.io/crates/bytecount)"],"needless_for_each":[C[0],"\nChecks for usage of for_each that would be more simply written as a\nfor loop.\n\n Why is this bad?\nfo"],"new_without_default":["Warn","\nChecks for public types with a pub fn new() -> Self method and no\nimplementation of\n[Default](https"],"flat_map_identity":["Warn","\nChecks for usage of flat_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more conci"],"no_mangle_with_rust_abi":[C[0],"\nChecks for Rust ABI functions with the [no_mangle] attribute.\n\n Why is this bad?\nThe Rust ABI is no"],"empty_structs_with_brackets":[C[0],"\nFinds structs without fields (a so-called \"empty struct\") that are declared with brackets.\n\n Why re"],"explicit_write":["Warn","\nChecks for usage of write!() / writeln()! which can be\nreplaced with (e)print!() / (e)println!()\n\n "],"match_like_matches_macro":["Warn","\nChecks for match or if let expressions producing a\nbool that could be written using matches!\n\n Why"],"nonsensical_open_options":["Deny","\nChecks for duplicate open options as well as combinations\nthat make no sense.\n\n Why is this bad?\nIn"],"pattern_type_mismatch":[C[0],"\nChecks for patterns that aren't exact representations of the types\nthey are applied to.\n\nTo satisfy"],"unnecessary_box_returns":[C[0],"\n\nChecks for a return type containing a Box<T> where T implements Sized\n\nThe lint ignores Box<T> whe"],"vec_init_then_push":["Warn","\nChecks for calls to push immediately after creating a new Vec.\n\nIf the Vec is created using with_ca"],"deprecated_semver":["Deny","\nChecks for [deprecated] annotations with a since\nfield that is not a valid semantic version. Also a"],"approx_constant":["Deny","\nChecks for floating point literals that approximate\nconstants which are defined in\n[std::f32::const"],"as_conversions":[C[0],"\nChecks for usage of as conversions.\n\nNote that this lint is specialized in linting *every single* u"],"unit_arg":["Warn","\nChecks for passing a unit value as an argument to a function without using a\nunit literal (()).\n\n W"],"collapsible_match":["Warn","\nFinds nested match or if let expressions where the patterns may be \"collapsed\" together\nwithout add"],"mut_mut":[C[0],"\nChecks for instances of mut mut references.\n\n Why is this bad?\nMultiple muts don't add anything mea"],"unnecessary_safety_doc":[C[0],"\nChecks for the doc comments of publicly visible\nsafe functions and traits and warns if there is a "],"fn_to_numeric_cast_with_truncation":["Warn","\nChecks for casts of a function pointer to a numeric type not wide enough to\nstore address.\n\n Why is"],"implicit_hasher":[C[0],"\nChecks for public impl or fn missing generalization\nover different hashers and implicitly defaultin"],"must_use_unit":["Warn","\nChecks for a [must_use] attribute on\nunit-returning functions and methods.\n\n Why is this bad?\nUnit "],"init_numbered_fields":["Warn","\nChecks for tuple structs initialized with field syntax.\nIt will however not lint if a base initiali"],"unnecessary_unwrap":["Warn","\nChecks for calls of unwrap[_err]() that cannot fail.\n\n Why is this bad?\nUsing if let or match is mo"],"option_map_or_err_ok":["Warn","\nChecks for usage of _.map_or(Err(_), Ok).\n\n Why is this bad?\nReadability, this can be written more "],"manual_map":["Warn","\nChecks for usage of match which could be implemented using map\n\n Why is this bad?\nUsing the map met"],"match_on_vec_items":[C[0],"\nChecks for match vec[idx] or match vec[n..m].\n\n Why is this bad?\nThis can panic at runtime.\n\n Examp"],"unused_io_amount":["Deny","\nChecks for unused written/read amount.\n\n Why is this bad?\nio::Write::write(_vectored) and\nio::Read:"],"must_use_candidate":[C[0],"\nChecks for public functions that have no\n[must_use] attribute, but return something not already mar"],"to_digit_is_some":["Warn","\nChecks for .to_digit(..).is_some() on chars.\n\n Why is this bad?\nThis is a convoluted way of checkin"],"erasing_op":["Deny","\nChecks for erasing operations, e.g., x * 0.\n\n Why is this bad?\nThe whole expression can be replaced"],"bytes_count_to_len":["Warn","\nIt checks for str::bytes().count() and suggests replacing it with\nstr::len().\n\n Why is this bad?\nst"],"excessive_nesting":["Warn","\nChecks for blocks which are nested beyond a certain threshold.\n\nNote: Even though this lint is warn"],"needless_collect":[C[0],"\nChecks for functions collecting an iterator when collect\nis not needed.\n\n Why is this bad?\ncollect "],"needless_match":["Warn","\nChecks for unnecessary match or match-like if let returns for Option and Result\nwhen function signa"],"needless_range_loop":["Warn","\nChecks for looping over the range of 0..len of some\ncollection just to get the values by index.\n\n W"],"similar_names":[C[0],"\nChecks for names that are very similar and thus confusing.\n\nNote: this lint looks for similar names"],"string_add_assign":[C[0],"\nChecks for string appends of the form x = x + y (without\nlet!).\n\n Why is this bad?\nIt's not really "],"pub_use":[C[0],"\nRestricts the usage of pub use ...\n\n Why restrict this?\nA project may wish to limit pub use instanc"],"suspicious_xor_used_as_pow":[C[0],"\nWarns for a Bitwise XOR (^) operator being probably confused as a powering. It will not trigger if "],"manual_str_repeat":["Warn","\nChecks for manual implementations of str::repeat\n\n Why is this bad?\nThese are both harder to read, "],"needless_update":["Warn","\nChecks for needlessly including a base struct on update\nwhen all fields are changed anyway.\n\nThis l"],"return_self_not_must_use":[C[0],"\nThis lint warns when a method returning Self doesn't have the [must_use] attribute.\n\n Why is this b"],"single_range_in_vec_init":["Warn","\nChecks for Vec or array initializations that contain only one range.\n\n Why is this bad?\nThis is alm"],"derive_ord_xor_partial_ord":["Deny","\nLints against manual PartialOrd and Ord implementations for types with a derived Ord\nor PartialOrd "],"items_after_statements":[C[0],"\nChecks for items declared after some statement in a block.\n\n Why is this bad?\nItems live for the en"],"string_from_utf8_as_bytes":["Warn","\nCheck if the string is transformed to byte array and casted back to string.\n\n Why is this bad?\nIt's"],"string_lit_chars_any":[C[0],"\nChecks for <string_lit>.chars().any(|i| i == c).\n\n Why is this bad?\nIt's significantly slower than "],"iter_cloned_collect":["Warn","\nChecks for the use of .cloned().collect() on slice to\ncreate a Vec.\n\n Why is this bad?\n.to_vec() is"],"suspicious_assignment_formatting":["Warn","\nChecks for usage of the non-existent =*, =! and =-\noperators.\n\n Why is this bad?\nThis is either a t"],"transmute_int_to_char":["Warn","\nChecks for transmutes from an integer to a char.\n\n Why is this bad?\nNot every integer is a Unicode "],"transmute_null_to_fn":["Deny","\nChecks for null function pointer creation through transmute.\n\n Why is this bad?\nCreating a null fun"],"string_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type String.\n\n Why restrict this?\nThe t"],"implicit_return":[C[0],"\nChecks for missing return statements at the end of a block.\n\n Why restrict this?\nOmitting the retur"],"rc_mutex":[C[0],"\nChecks for Rc<Mutex<T>>.\n\n Why restrict this?\nRc is used in single thread and Mutex is used in mult"],"unnecessary_wraps":[C[0],"\nChecks for private functions that only return Ok or Some.\n\n Why is this bad?\nIt is not meaningful t"],"wildcard_in_or_patterns":["Warn","\nChecks for wildcard pattern used with others patterns in same match arm.\n\n Why is this bad?\nWildcar"],"unnecessary_fallible_conversions":["Warn","\nChecks for calls to TryInto::try_into and TryFrom::try_from when their infallible counterparts\ncoul"],"match_as_ref":["Warn","\nChecks for match which is used to add a reference to an\nOption value.\n\n Why is this bad?\nUsing as_r"],"disallowed_types":["Warn","\nDenies the configured types in clippy.toml.\n\nNote: Even though this lint is warn-by-default, it wil"],"needless_bool":["Warn","\nChecks for expressions of the form if c { true } else {\nfalse } (or vice versa) and suggests using "],"duplicated_attributes":["Warn","\nChecks for attributes that appear two or more times.\n\n Why is this bad?\nRepeating an attribute on t"],"option_option":[C[0],"\nChecks for usage of Option<Option<_>> in function signatures and type\ndefinitions\n\n Why is this bad"],"read_line_without_trim":["Deny","\nLooks for calls to [Stdin::read_line] to read a line from the standard input\ninto a string, then la"],"unnecessary_cast":["Warn","\nChecks for casts to the same type, casts of int literals to integer types, casts of float\nliterals "],"await_holding_invalid_type":["Warn","\nAllows users to configure types which should not be held across await\nsuspension points.\n\n Why is t"],"search_is_some":["Warn","\nChecks for an iterator or string search (such as find(),\nposition(), or rposition()) followed by a "],"unnecessary_struct_initialization":[C[0],"\nChecks for initialization of a struct by copying a base without setting\nany field.\n\n Why is this ba"],"modulo_one":["Deny","\nChecks for getting the remainder of a division by one or minus\none.\n\n Why is this bad?\nThe result f"],"mut_from_ref":["Deny","\nThis lint checks for functions that take immutable references and return\nmutable ones. This will no"],"needless_if":["Warn","\nChecks for empty if branches with no else branch.\n\n Why is this bad?\nIt can be entirely omitted, an"],"needless_question_mark":["Warn","\nSuggests alternatives for useless applications of ? in terminating expressions\n\n Why is this bad?\nT"],"unnecessary_to_owned":["Warn","\nChecks for unnecessary calls to [ToOwned::to_owned](https://doc.rust-lang.org/std/borrow/trait.ToOw"],"map_identity":["Warn","\nChecks for instances of map(f) where f is the identity function.\n\n Why is this bad?\nIt can be writt"],"manual_non_exhaustive":["Warn","\nChecks for manual implementations of the non-exhaustive pattern.\n\n Why is this bad?\nUsing the [non_"],"unreadable_literal":[C[0],"\nWarns if a long integral or floating-point constant does\nnot contain underscores.\n\n Why is this bad"],"unwrap_in_result":[C[0],"\nChecks for functions of type Result that contain expect() or unwrap()\n\n Why restrict this?\nThese fu"],"zero_ptr":["Warn","\nCatch casts from 0 to some pointer type\n\n Why is this bad?\nThis generally means null and is better "],"wrong_self_convention":["Warn","\nChecks for methods with certain name prefixes or suffixes, and which\ndo not adhere to standard conv"],"macro_use_imports":[C[0],"\nChecks for [macro_use] use....\n\n Why is this bad?\nSince the Rust 2018 edition you can import\nmacro'"],"non_octal_unix_permissions":["Deny","\nChecks for non-octal values used to set Unix file permissions.\n\n Why is this bad?\nThey will be conv"],"exhaustive_structs":[C[0],"\nWarns on any exported structs that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking a st"],"len_zero":["Warn","\nChecks for getting the length of something via .len()\njust to compare to zero, and suggests using ."],"obfuscated_if_else":["Warn","\nChecks for usage of .then_some(..).unwrap_or(..)\n\n Why is this bad?\nThis can be written more clearl"],"recursive_format_impl":["Deny","\nChecks for format trait implementations (e.g. Display) with a recursive call to itself\nwhich uses s"],"unnecessary_map_on_constructor":["Warn","\nSuggests removing the use of a map() (or map_err()) method when an Option or Result\nis being constr"],"unnecessary_find_map":["Warn","\nChecks for find_map calls that could be replaced by find or map. More\nspecifically it checks if the"],"ineffective_open_options":["Warn","\nChecks if both .write(true) and .append(true) methods are called\non a same OpenOptions.\n\n Why is th"],"swap_ptr_to_ref":["Warn","\nChecks for calls to core::mem::swap where either parameter is derived from a pointer\n\n Why is this "],"ignored_unit_patterns":[C[0],"\nChecks for usage of _ in patterns of type ().\n\n Why is this bad?\nMatching with () explicitly instea"],"iter_out_of_bounds":["Warn","\nLooks for iterator combinator calls such as .take(x) or .skip(x)\nwhere x is greater than the amount"],"manual_memcpy":["Warn","\nChecks for for-loops that manually copy items between\nslices that could be optimized by having a me"],"needless_parens_on_range_literals":["Warn","\nThe lint checks for parenthesis on literals in range statements that are\nsuperfluous.\n\n Why is this"],"print_in_format_impl":["Warn","\nChecks for usage of println, print, eprintln or eprint in an\nimplementation of a formatting trait.\n"],"ref_binding_to_reference":[C[0],"\nChecks for ref bindings which create a reference to a reference.\n\n Why is this bad?\nThe address-of "],"unnecessary_safety_comment":[C[0],"\nChecks for // SAFETY: comments on safe code.\n\n Why restrict this?\nSafe code has no safety requirem"],"unnecessary_sort_by":["Warn","\nChecks for usage of Vec::sort_by passing in a closure\nwhich compares the two arguments, either dire"],"deref_by_slicing":[C[0],"\nChecks for slicing expressions which are equivalent to dereferencing the\nvalue.\n\n Why restrict this"],"lint_groups_priority":["Deny","\nChecks for lint groups with the same priority as lints in the Cargo.toml\n[[lints] table](https://do"],"fn_address_comparisons":["Deny","\nChecks for comparisons with an address of a function item.\n\n Why is this bad?\nFunction item address"],"maybe_misused_cfg":["None",C[3]],"assign_op_pattern":["Warn","\nChecks for a = a op b or a = b commutative_op a\npatterns.\n\n Why is this bad?\nThese can be written a"],"op_ref":["Warn","\nChecks for arguments to == which have their address\ntaken to satisfy a bound\nand suggests to derefe"],"cmp_owned":["Warn","\nChecks for conversions to owned values just for the sake\nof a comparison.\n\n Why is this bad?\nThe co"],"misnamed_getters":["Warn","\nChecks for getter methods that return a field that doesn't correspond\nto the name of the method, wh"],"large_futures":[C[0],"\nIt checks for the size of a Future created by async fn or async {}.\n\n Why is this bad?\nDue to the c"],"zero_repeat_side_effects":["Warn","\nChecks for array or vec initializations which call a function or method,\nbut which have a repeat co"],"fn_to_numeric_cast_any":[C[0],"\nChecks for casts of a function pointer to any integer type.\n\n Why restrict this?\nCasting a function"],"strlen_on_c_strings":["Warn","\nChecks for usage of libc::strlen on a CString or CStr value,\nand suggest calling as_bytes().len() o"],"const_is_empty":["Warn","\nIt identifies calls to .is_empty() on constant values.\n\n Why is this bad?\nString literals and const"],"drain_collect":["Warn","\nChecks for calls to .drain() that clear the collection, immediately followed by a call to .collect("],"integer_division":[C[0],"\nChecks for division of integers\n\n Why restrict this?\nWhen outside of some very specific algorithms,"],"use_debug":[C[0],"\nChecks for usage of Debug formatting. The purpose of this\nlint is to catch debugging remnants.\n\n Wh"],"filter_next":["Warn","\nChecks for usage of _.filter(_).next().\n\n Why is this bad?\nReadability, this can be written more co"],"format_collect":["Warn","\nChecks for usage of .map(|_| format!(..)).collect::<String>().\n\n Why is this bad?\nThis allocates a "],"redundant_closure_for_method_calls":[C[0],"\nChecks for closures which only invoke a method on the closure\nargument and can be replaced by refer"],"tabs_in_doc_comments":["Warn","\nChecks doc comments for usage of tab characters.\n\n Why is this bad?\nThe rust style-guide promotes s"],"shadow_same":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while just changing reference leve"],"needless_lifetimes":["Warn","\nChecks for lifetime annotations which can be removed by\nrelying on lifetime elision.\n\n Why is this "],"suspicious_splitn":["Deny","\nChecks for calls to [splitn]\n(https://doc.rust-lang.org/std/primitive.str.htmlmethod.splitn) and\nre"],"overly_complex_bool_expr":["Deny","\nChecks for boolean expressions that contain terminals that\ncan be eliminated.\n\n Why is this bad?\nTh"],"uninlined_format_args":[C[0],"\nDetect when a variable is not inlined in a format string,\nand suggests to inline it.\n\n Why is this "],"copy_iterator":[C[0],"\nChecks for types that implement Copy as well as\nIterator.\n\n Why is this bad?\nImplicit copies can be"],"async_yields_async":["Deny","\nChecks for async blocks that yield values of types\nthat can themselves be awaited.\n\n Why is this ba"],"std_instead_of_core":[C[0],"\nFinds items imported through std when available through core.\n\n Why restrict this?\nCrates which hav"],"from_raw_with_void_ptr":["Warn","\nChecks if we're passing a c_void raw pointer to {Box,Rc,Arc,Weak}::from_raw(_)\n\n Why is this bad?\nW"],"uninhabited_references":[C[0],"\nIt detects references to uninhabited types, such as ! and\nwarns when those are either dereferenced "],"crate_in_macro_def":["Warn","\nChecks for usage of crate as opposed to $crate in a macro definition.\n\n Why is this bad?\ncrate refe"],"filter_map":["None",C[2]],"allow_attributes_without_reason":[C[0],"\nChecks for attributes that allow lints without a reason.\n\n Why restrict this?\nJustifying each allow"],"filter_map_identity":["Warn","\nChecks for usage of filter_map(|x| x).\n\n Why is this bad?\nReadability, this can be written more con"],"iter_next_loop":["Deny","\nChecks for loops on x.next().\n\n Why is this bad?\nnext() returns either Some(value) if there was a\nv"],"same_item_push":["Warn","\nChecks whether a for loop is being used to push a constant\nvalue into a Vec.\n\n Why is this bad?\nThi"],"double_comparisons":["Warn","\nChecks for double comparisons that could be simplified to a single expression.\n\n\n Why is this bad?\n"],"large_digit_groups":[C[0],"\nWarns if the digits of an integral or floating-point\nconstant are grouped into groups that\nare too "],"expect_used":[C[0],"\nChecks for .expect() or .expect_err() calls on Results and .expect() call on Options.\n\n Why restric"],"rest_pat_in_fully_bound_structs":[C[0],"\nChecks for unnecessary '..' pattern binding on struct when all fields are explicitly matched.\n\n Why"],"empty_docs":["Warn","\nDetects documentation that is empty.\n Why is this bad?\nEmpty docs clutter code without adding value"],"single_char_pattern":[C[0],"\nChecks for string methods that receive a single-character\nstr as an argument, e.g., _.split(\"x\").\n\n"],"enum_glob_use":[C[0],"\nChecks for use Enum::*.\n\n Why is this bad?\nIt is usually better style to use the prefixed name of\na"],"mixed_case_hex_literals":["Warn","\nWarns on hexadecimal literals with mixed-case letter\ndigits.\n\n Why is this bad?\nIt looks confusing."],"seek_to_start_instead_of_rewind":["Warn","\n\nChecks for jumps to the start of a stream that implements Seek\nand uses the seek method providing "],"zero_sized_map_values":[C[0],"\nChecks for maps with zero-sized value types anywhere in the code.\n\n Why is this bad?\nSince there is"],"missing_safety_doc":["Warn","\nChecks for the doc comments of publicly visible\nunsafe functions and warns if there is no Safety s"],"blocks_in_conditions":["Warn","\nChecks for if and match conditions that use blocks containing an\nexpression, statements or conditio"],"explicit_iter_loop":[C[0],"\nChecks for loops on x.iter() where &x will do, and\nsuggests the latter.\n\n Why is this bad?\nReadabil"],"explicit_into_iter_loop":[C[0],"\nChecks for loops on y.into_iter() where y will do, and\nsuggests the latter.\n\n Why is this bad?\nRead"],"iter_without_into_iter":[C[0],"\nLooks for iter and iter_mut methods without an associated IntoIterator for (&|&mut) Type implementa"],"str_split_at_newline":[C[0],"\n\nChecks for usages of str.trim().split(\"\\n\") and str.trim().split(\"\\r\\n\").\n\n Why is this bad?\n\nHard"],"let_unit_value":["Warn","\nChecks for binding a unit value.\n\n Why is this bad?\nA unit value cannot usefully be used anywhere. "],"clone_on_ref_ptr":[C[0],"\nChecks for usage of .clone() on a ref-counted pointer,\n(Rc, Arc, rc::Weak, or sync::Weak), and sugg"],"redundant_pub_crate":[C[0],"\nChecks for items declared pub(crate) that are not crate visible because they\nare inside a private m"],"suspicious_open_options":["Warn","\nChecks for the suspicious use of OpenOptions::create()\nwithout an explicit OpenOptions::truncate()."],"suspicious_to_owned":["Warn","\nChecks for the usage of _.to_owned(), on a Cow<'_, _>.\n\n Why is this bad?\nCalling to_owned() on a C"],"trait_duplication_in_bounds":[C[0],"\nChecks for cases where generics or trait objects are being used and multiple\nsyntax specifications "],"let_underscore_must_use":[C[0],"\nChecks for let _ = <expr> where expr is [must_use]\n\n Why restrict this?\nTo ensure that all [must_us"],"partialeq_to_none":["Warn","\n\nChecks for binary comparisons to a literal Option::None.\n\n Why is this bad?\n\nA programmer checking"],"host_endian_bytes":[C[0],"\nChecks for the usage of the to_ne_bytes method and/or the function from_ne_bytes.\n\n Why restrict th"],"empty_line_after_doc_comments":[C[0],"\nChecks for empty lines after documentation comments.\n\n Why is this bad?\nThe documentation comment w"],"inherent_to_string_shadow_display":["Deny","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String and if"],"no_effect_replace":["Warn","\nChecks for replace statements which have no effect.\n\n Why is this bad?\nIt's either a mistake or con"],"rc_buffer":[C[0],"\nChecks for Rc<T> and Arc<T> when T is a mutable buffer type such as String or Vec.\n\n Why restrict t"],"new_ret_no_self":["Warn","\nChecks for new not returning a type that contains Self.\n\n Why is this bad?\nAs a convention, new met"],"trim_split_whitespace":["Warn","\nWarns about calling str::trim (or variants) before str::split_whitespace.\n\n Why is this bad?\nsplit_"],"wildcard_imports":[C[0],"\nChecks for wildcard imports use _::*.\n\n Why is this bad?\nwildcard imports can pollute the namespace"],"iter_on_single_items":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on collections containing a single item\n\n Why is t"],"path_ends_with_ext":["Warn","\nLooks for calls to Path::ends_with calls where the argument looks like a file extension.\n\nBy defaul"],"redundant_closure":["Warn","\nChecks for closures which just call another function where\nthe function can be called directly. uns"],"iter_skip_zero":["Deny","\nChecks for usage of .skip(0) on iterators.\n\n Why is this bad?\nThis was likely intended to be .skip("],"collection_is_never_read":[C[0],"\nChecks for collections that are never queried.\n\n Why is this bad?\nPutting effort into constructing "],"mutex_integer":[C[0],"\nChecks for usage of Mutex<X> where X is an integral\ntype.\n\n Why is this bad?\nUsing a mutex just to "],"inefficient_to_string":[C[0],"\nChecks for usage of .to_string() on an &&T where\nT implements ToString directly (like &&str or &&St"],"large_stack_frames":[C[0],"\nChecks for functions that use a lot of stack space.\n\nThis often happens when constructing a large t"],"checked_conversions":[C[0],"\nChecks for explicit bounds checking when casting.\n\n Why is this bad?\nReduces the readability of sta"],"struct_excessive_bools":[C[0],"\nChecks for excessive\nuse of bools in structs.\n\n Why is this bad?\nExcessive bools in a struct\nis oft"],"inline_asm_x86_intel_syntax":[C[0],"\nChecks for usage of Intel x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of AT"],"redundant_pattern":["Warn","\nChecks for patterns in the form name @ _.\n\n Why is this bad?\nIt's almost always more readable to ju"],"iter_skip_next":["Warn","\nChecks for usage of .skip(x).next() on iterators.\n\n Why is this bad?\n.nth(x) is cleaner\n\n Example\nr"],"iter_not_returning_iterator":[C[0],"\nDetects methods named iter or iter_mut that do not have a return type that implements Iterator.\n\n W"],"empty_enum_variants_with_brackets":[C[0],"\nFinds enum variants without fields that are declared with empty brackets.\n\n Why restrict this?\nEmpt"],"for_kv_map":["Warn","\nChecks for iterating a map (HashMap or BTreeMap) and\nignoring either the keys or values.\n\n Why is t"],"allow_attributes":[C[0],"\nChecks for usage of the [allow] attribute and suggests replacing it with\nthe [expect] (See [RFC 238"],"needless_pub_self":["Warn","\nChecks for usage of pub(self) and pub(in self).\n\n Why is this bad?\nIt's unnecessary, omitting the p"],"too_many_arguments":["Warn","\nChecks for functions with too many parameters.\n\n Why is this bad?\nFunctions with lots of parameters"],"boxed_local":["Warn","\nChecks for usage of Box<T> where an unboxed T would\nwork fine.\n\n Why is this bad?\nThis is an unnece"],"find_map":["None",C[2]],"missing_inline_in_public_items":[C[0],"\nIt lints if an exported function, method, trait method with default impl,\nor trait method impl is n"],"permissions_set_readonly_false":["Warn","\nChecks for calls to std::fs::Permissions.set_readonly with argument false.\n\n Why is this bad?\nOn Un"],"zst_offset":["Deny","\nChecks for offset(_), wrapping_{add, sub}, etc. on raw pointers to\nzero-sized types\n\n Why is this b"],"needless_bitwise_bool":[C[0],"\nChecks for usage of bitwise and/or operators between booleans, where performance may be improved by"],"redundant_guards":["Warn","\nChecks for unnecessary guards in match expressions.\n\n Why is this bad?\nIt's more complex and much l"],"redundant_slicing":["Warn","\nChecks for redundant slicing expressions which use the full range, and\ndo not change the type.\n\n Wh"],"map_err_ignore":[C[0],"\nChecks for instances of map_err(|_| Some::Enum)\n\n Why restrict this?\nThis map_err throws away the o"],"eq_op":["Deny","\nChecks for equal operands to comparison, logical and\nbitwise, difference and division binary operat"],"needless_splitn":["Warn","\nChecks for usage of str::splitn (or str::rsplitn) where using str::split would be the same.\n Why is"],"string_add":[C[0],"\nChecks for all instances of x + _ where x is of type\nString, but only if [string_add_assign](string"],"comparison_chain":["Warn","\nChecks comparison chains written with if that can be\nrewritten with match and cmp.\n\n Why is this ba"],"iter_filter_is_some":[C[0],"\nChecks for usage of .filter(Option::is_some) that may be replaced with a .flatten() call.\nThis lint"],"manual_unwrap_or":["Warn","\nFinds patterns that reimplement Option::unwrap_or or Result::unwrap_or.\n\n Why is this bad?\nConcise "],"to_string_trait_impl":["Warn","\nChecks for direct implementations of ToString.\n Why is this bad?\nThis trait is automatically implem"],"extra_unused_lifetimes":["Warn","\nChecks for lifetimes in generics that are never used\nanywhere else.\n\n Why is this bad?\nThe addition"],"needless_pass_by_value":[C[0],"\nChecks for functions taking arguments by value, but not\nconsuming them in its\nbody.\n\n Why is this b"],"cast_sign_loss":[C[0],"\nChecks for casts from a signed to an unsigned numerical\ntype. In this case, negative values wrap ar"],"redundant_as_str":["Warn","\nChecks for usage of as_str() on a String chained with a method available on the String itself.\n\n Wh"],"too_many_lines":[C[0],"\nChecks for functions with a large amount of lines.\n\n Why is this bad?\nFunctions with a lot of lines"],"cmp_null":["Warn","\nThis lint checks for equality comparisons with ptr::null\n\n Why is this bad?\nIt's easier and more re"],"needless_option_as_deref":["Warn","\nChecks for no-op uses of Option::{as_deref, as_deref_mut},\nfor example, Option<&T>::as_deref() retu"],"upper_case_acronyms":["Warn","\nChecks for fully capitalized names and optionally names containing a capitalized acronym.\n\n Why is "],"absurd_extreme_comparisons":["Deny","\nChecks for comparisons where one side of the relation is\neither the minimum or maximum value for it"],"fn_params_excessive_bools":[C[0],"\nChecks for excessive use of\nbools in function definitions.\n\n Why is this bad?\nCalls to such functio"],"multiple_inherent_impl":[C[0],"\nChecks for multiple inherent implementations of a struct\n\n Why restrict this?\nSplitting the impleme"],"manual_next_back":["Warn","\nChecks for .rev().next() on a DoubleEndedIterator\n\n Why is this bad?\n.next_back() is cleaner.\n\n Exa"],"suboptimal_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve both\na"],"from_over_into":["Warn","\nSearches for implementations of the Into<..> trait and suggests to implement From<..> instead.\n\n Wh"],"inline_always":[C[0],"\nChecks for items annotated with [inline(always)],\nunless the annotated function is empty or simply "],"default_numeric_fallback":[C[0],"\nChecks for usage of unconstrained numeric literals which may cause default numeric fallback in type"],"semicolon_if_nothing_returned":[C[0],"\nLooks for blocks of expressions and fires if the last expression returns\n() but is not followed by "],"needless_else":["Warn","\nChecks for empty else branches.\n\n Why is this bad?\nAn empty else branch does nothing and can be rem"],"assigning_clones":[C[0],"\nChecks for code like foo = bar.clone();\n\n Why is this bad?\nCustom Clone::clone_from() or ToOwned::c"],"empty_enum":[C[0],"\nChecks for enums with no variants, which therefore are uninhabited types\n(cannot be instantiated).\n"],"missing_panics_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nmay panic and warns if there is no Pani"],"shadow_unrelated":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, either without an initialization o"],"zero_prefixed_literal":["Warn","\nWarns if an integral constant literal starts with 0.\n\n Why is this bad?\nIn some languages (includin"],"transmute_int_to_bool":["Warn","\nChecks for transmutes from an integer to a bool.\n\n Why is this bad?\nThis might result in an invalid"],"transmuting_null":["Deny","\nChecks for transmute calls which would receive a null pointer.\n\n Why is this bad?\nTransmuting a nul"],"trailing_empty_array":[C[0],"\nDisplays a warning when a struct with a trailing zero-sized array is declared without a repr attrib"],"exhaustive_enums":[C[0],"\nWarns on any exported enums that are not tagged [non_exhaustive]\n\n Why restrict this?\nMaking an enu"],"pub_without_shorthand":[C[0],"\nChecks for usage of pub(<loc>) without in.\n\nNote: As you cannot write a module's path in pub(<loc>)"],"ref_patterns":[C[0],"\nChecks for usages of the ref keyword.\n\n Why restrict this?\nThe ref keyword can be confusing for peo"],"large_include_file":[C[0],"\nChecks for the inclusion of large files via include_bytes!()\nor include_str!().\n\n Why restrict this"],"flat_map_option":[C[0],"\nChecks for usage of Iterator::flat_map() where filter_map() could be\nused instead.\n\n Why is this ba"],"manual_find_map":["Warn","\nChecks for usage of _.find(_).map(_) that can be written more simply\nas find_map(_).\n\n Why is this "],"double_must_use":["Warn","\nChecks for a [must_use] attribute without\nfurther information on functions and methods that return "],"absolute_paths":[C[0],"\nChecks for usage of items through absolute paths, like std::env::current_dir.\n\n Why restrict this?\n"],"disallowed_names":["Warn","\nChecks for usage of disallowed names for variables, such\nas foo.\n\n Why is this bad?\nThese names are"],"or_then_unwrap":["Warn","\nChecks for .or(…).unwrap() calls to Options and Results.\n\n Why is this bad?\nYou should use .unwra"],"exit":[C[0],"\nDetects calls to the exit() function which terminates the program.\n\n Why restrict this?\nexit() imme"],"await_holding_lock":["Warn","\nChecks for calls to await while holding a non-async-aware MutexGuard.\n\n Why is this bad?\nThe Mutex "],"from_iter_instead_of_collect":[C[0],"\nChecks for from_iter() function calls on types that implement the FromIterator\ntrait.\n\n Why is this"],"needless_maybe_sized":["Warn","\nLints ?Sized bounds applied to type parameters that cannot be unsized\n\n Why is this bad?\nThe ?Sized"],"index_refutable_slice":[C[0],"\nThe lint checks for slice bindings in patterns that are only used to\naccess individual slice values"],"use_self":[C[0],"\nChecks for unnecessary repetition of structure name when a\nreplacement with Self is applicable.\n\n W"],"mod_module_files":[C[0],"\nChecks that module layout uses only self named module files; bans mod.rs files.\n\n Why restrict this"],"range_minus_one":[C[0],"\nChecks for inclusive ranges where 1 is subtracted from\nthe upper bound, e.g., x..=(y-1).\n\n Why is t"],"seek_from_current":["Warn","\n\nChecks if the seek method of the Seek trait is called with SeekFrom::Current(0),\nand if it is, sug"],"explicit_auto_deref":["Warn","\nChecks for dereferencing expressions which would be covered by auto-deref.\n\n Why is this bad?\nThis "],"slow_vector_initialization":["Warn","\nChecks slow zero-filled vector initialization\n\n Why is this bad?\nThese structures are non-idiomatic"],"map_clone":["Warn","\nChecks for usage of map(|x| x.clone()) or\ndereferencing closures for Copy types, on Iterator or Opt"],"chars_last_cmp":["Warn","\nChecks for usage of _.chars().last() or\n_.chars().next_back() on a str to check if it ends with a g"],"ifs_same_cond":["Deny","\nChecks for consecutive ifs with the same condition.\n\n Why is this bad?\nThis is probably a copy & pa"],"crosspointer_transmute":["Warn","\nChecks for transmutes between a type T and *T.\n\n Why is this bad?\nIt's easy to mistakenly transmute"],"cloned_instead_of_copied":[C[0],"\nChecks for usage of cloned() on an Iterator or Option where\ncopied() could be used instead.\n\n Why i"],"borrow_deref_ref":["Warn","\nChecks for &*(&T).\n\n Why is this bad?\nDereferencing and then borrowing a reference value has no eff"],"just_underscores_and_digits":["Warn","\nChecks if you have variables whose name consists of just\nunderscores and digits.\n\n Why is this bad?"],"manual_string_new":[C[0],"\n\nChecks for usage of \"\" to create a String, such as \"\".to_string(), \"\".to_owned(),\nString::from(\"\")"],"non_send_fields_in_send_ty":[C[0],"\nThis lint warns about a Send implementation for a type that\ncontains fields that are not safe to be"],"unseparated_literal_suffix":[C[0],"\nWarns if literal suffixes are not separated by an\nunderscore.\nTo enforce unseparated literal suffix"],"unnecessary_get_then_check":["Warn","\nChecks the usage of .get().is_some() or .get().is_none() on std map types.\n\n Why is this bad?\nIt ca"],"derivable_impls":["Warn","\nDetects manual std::default::Default implementations that are identical to a derived implementation"],"box_default":["Warn","\nchecks for Box::new(Default::default()), which can be written as\nBox::default().\n\n Why is this bad?"],"len_without_is_empty":["Warn","\nChecks for items that implement .len() but not\n.is_empty().\n\n Why is this bad?\nIt is good custom to"],"map_collect_result_unit":["Warn","\nChecks for usage of _.map(_).collect::<Result<(), _>().\n\n Why is this bad?\nUsing try_for_each inste"],"result_map_or_into_option":["Warn","\nChecks for usage of _.map_or(None, Some).\n\n Why is this bad?\nReadability, this can be written more "],"unused_unit":["Warn","\nChecks for unit (()) expressions that can be removed.\n\n Why is this bad?\nSuch expressions add no va"],"transmute_ptr_to_ref":["Warn","\nChecks for transmutes from a pointer to a reference.\n\n Why is this bad?\nThis can always be rewritte"],"suspicious_arithmetic_impl":["Warn","\nLints for suspicious operations in impls of arithmetic operators, e.g.\nsubtracting elements in an A"],"await_holding_refcell_ref":["Warn","\nChecks for calls to await while holding a RefCell Ref or RefMut.\n\n Why is this bad?\nRefCell refs on"],"non_canonical_partial_ord_impl":["Warn","\nChecks for non-canonical implementations of PartialOrd when Ord is already implemented.\n\n Why is th"],"used_underscore_binding":[C[0],"\nChecks for the use of bindings with a single leading\nunderscore.\n\n Why is this bad?\nA single leadin"],"needless_bool_assign":["Warn","\nChecks for expressions of the form if c { x = true } else { x = false }\n(or vice versa) and suggest"],"format_in_format_args":["Warn","\nDetects format! within the arguments of another macro that does\nformatting such as format! itself, "],"default_union_representation":[C[0],"\nDisplays a warning when a union is declared with the default representation (without a [repr(C)] at"],"default_trait_access":[C[0],"\nChecks for literal calls to Default::default().\n\n Why is this bad?\nIt's easier for the reader if th"],"implied_bounds_in_impls":["Warn","\nLooks for bounds in impl Trait in return position that are implied by other bounds.\nThis can happen"],"inline_fn_without_body":["Deny","\nChecks for [inline] on trait methods without bodies\n\n Why is this bad?\nOnly implementations of trai"],"needless_raw_strings":[C[0],"\nChecks for raw string literals where a string literal can be used instead.\n\n Why restrict this?\nFor"],"ref_option_ref":[C[0],"\nChecks for usage of &Option<&T>.\n\n Why is this bad?\nSince & is Copy, it's useless to have a\nreferen"],"unnecessary_lazy_evaluations":["Warn","\nAs the counterpart to or_fun_call, this lint looks for unnecessary\nlazily evaluated closures on Opt"],"many_single_char_names":[C[0],"\nChecks for too many variables whose name consists of a\nsingle character.\n\n Why is this bad?\nIt's ha"],"not_unsafe_ptr_arg_deref":["Deny","\nChecks for public functions that dereference raw pointer\narguments but are not marked unsafe.\n\n Why"],"while_float":[C[0],"\nChecks for while loops comparing floating point values.\n\n Why is this bad?\nIf you increment floatin"],"filter_map_next":[C[0],"\nChecks for usage of _.filter_map(_).next().\n\n Why is this bad?\nReadability, this can be written mor"],"self_named_constructors":["Warn","\nWarns when constructors have the same name as their types.\n\n Why is this bad?\nRepeating the name of"],"inspect_for_each":["Warn","\nChecks for usage of inspect().for_each().\n\n Why is this bad?\nIt is the same as performing the compu"],"iter_nth_zero":["Warn","\nChecks for the use of iter.nth(0).\n\n Why is this bad?\niter.next() is equivalent to\niter.nth(0), as "],"question_mark":["Warn","\nChecks for expressions that could be replaced by the question mark operator.\n\n Why is this bad?\nQue"],"self_named_module_files":[C[0],"\nChecks that module layout uses only mod.rs files.\n\n Why restrict this?\nHaving multiple module layou"],"incompatible_msrv":["Warn","\n\nThis lint checks that no function newer than the defined MSRV (minimum\nsupported rust version) is "],"manual_range_patterns":["Warn","\nLooks for combined OR patterns that are all contained in a specific range,\ne.g. 6 | 4 | 5 | 9 | 7 |"],"shadow_reuse":[C[0],"\nChecks for bindings that shadow other bindings already in\nscope, while reusing the original value.\n"],"float_arithmetic":[C[0],"\nChecks for float arithmetic.\n\n Why restrict this?\nFor some embedded systems or kernel development, "],"large_types_passed_by_value":[C[0],"\nChecks for functions taking arguments by value, where\nthe argument type is Copy and large enough to"],"dbg_macro":[C[0],"\nChecks for usage of the [dbg!](https://doc.rust-lang.org/std/macro.dbg.html) macro.\n\n Why restrict "],"unimplemented":[C[0],"\nChecks for usage of unimplemented!.\n\n Why restrict this?\nThis macro, or panics in general, may be u"],"borrow_as_ptr":[C[0],"\nChecks for the usage of &expr as *const T or\n&mut expr as *mut T, and suggest using ptr::addr_of or"],"ok_expect":["Warn","\nChecks for usage of ok().expect(..).\n\n Why is this bad?\nBecause you usually call expect() on the Re"],"mem_forget":[C[0],"\nChecks for usage of std::mem::forget(t) where t is\nDrop or has a field that implements Drop.\n\n Why "],"only_used_in_recursion":["Warn","\nChecks for arguments that are only used in recursion with no side-effects.\n\n Why is this bad?\nIt co"],"result_unit_err":["Warn","\nChecks for public functions that return a Result\nwith an Err type of (). It suggests using a custom"],"toplevel_ref_arg":["Warn","\nChecks for function arguments and let bindings denoted as\nref.\n\n Why is this bad?\nThe ref declarati"],"unnecessary_filter_map":["Warn","\nChecks for filter_map calls that could be replaced by filter or map.\nMore specifically it checks if"],"unstable_as_mut_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_mut_sli"],"default_constructed_unit_structs":["Warn","\nChecks for construction on unit struct using default.\n\n Why is this bad?\nThis adds code complexity "],"iter_next_slice":["Warn","\nChecks for usage of iter().next() on a Slice or an Array\n\n Why is this bad?\nThese can be shortened "],"transmute_num_to_bytes":["Warn","\nChecks for transmutes from a number to an array of u8\n\n Why this is bad?\nTransmutes are dangerous a"],"unneeded_field_pattern":[C[0],"\nChecks for structure field patterns bound to wildcards.\n\n Why restrict this?\nUsing .. instead is sh"],"clear_with_drain":[C[0],"\nChecks for usage of .drain(..) for the sole purpose of clearing a container.\n\n Why is this bad?\nThi"],"missing_errors_doc":[C[0],"\nChecks the doc comments of publicly visible functions that\nreturn a Result type and warns if there "],"missing_enforced_import_renames":["Warn","\nChecks for imports that do not rename the item as specified\nin the enforced-import-renames config o"],"mutable_key_type":["Warn","\nChecks for sets/maps with mutable key types.\n\n Why is this bad?\nAll of HashMap, HashSet, BTreeMap a"],"fallible_impl_from":[C[0],"\nChecks for impls of From<..> that contain panic!() or unwrap()\n\n Why is this bad?\nTryFrom should be"],"inconsistent_digit_grouping":["Warn","\nWarns if an integral or floating-point constant is\ngrouped inconsistently with underscores.\n\n Why i"],"misrefactored_assign_op":["Warn","\nChecks for a op= a op b or a op= b op a patterns.\n\n Why is this bad?\nMost likely these are bugs whe"],"deref_addrof":["Warn","\nChecks for usage of *& and *&mut in expressions.\n\n Why is this bad?\nImmediately dereferencing a ref"],"option_if_let_else":[C[0],"\nLints usage of if let Some(v) = ... { y } else { x } and\nmatch .. { Some(v) => y, None/_ => x } whi"],"possible_missing_comma":["Deny","\nChecks for possible missing comma in an array. It lints if\nan array element is a binary operator ex"],"range_zip_with_len":["Warn","\nChecks for zipping a collection with the range of\n0.._.len().\n\n Why is this bad?\nThe code is better"],"let_and_return":["Warn","\nChecks for let-bindings, which are subsequently\nreturned.\n\n Why is this bad?\nIt is just extraneous "],"manual_is_infinite":["Warn","\nChecks for manual is_infinite reimplementations\n(i.e., x == <float>::INFINITY || x == <float>::NEG_"],"self_assignment":["Deny","\nChecks for explicit self-assignments.\n\n Why is this bad?\nSelf-assignments are redundant and unlikel"],"std_instead_of_alloc":[C[0],"\nFinds items imported through std when available through alloc.\n\n Why restrict this?\nCrates which ha"],"transmute_int_to_float":["Warn","\nChecks for transmutes from an integer to a float.\n\n Why is this bad?\nTransmutes are dangerous and e"],"readonly_write_lock":["Warn","\nLooks for calls to RwLock::write where the lock is only used for reading.\n\n Why is this bad?\nThe wr"],"unchecked_duration_subtraction":[C[0],"\nLints subtraction between an Instant and a Duration.\n\n Why is this bad?\nUnchecked subtraction could"],"case_sensitive_file_extension_comparisons":[C[0],"\nChecks for calls to ends_with with possible file extensions\nand suggests to use a case-insensitive "],"unnecessary_literal_unwrap":["Warn","\nChecks for .unwrap() related calls on Results and Options that are constructed.\n\n Why is this bad?\n"],"bytes_nth":["Warn","\nChecks for the use of .bytes().nth().\n\n Why is this bad?\n.as_bytes().get() is more efficient and mo"],"manual_swap":["Warn","\nChecks for manual swapping.\n\nNote that the lint will not be emitted in const blocks, as the suggest"],"maybe_infinite_iter":[C[0],"\nChecks for iteration that may be infinite.\n\n Why is this bad?\nWhile there may be places where this "],"panic_in_result_fn":[C[0],"\nChecks for usage of panic! or assertions in a function whose return type is Result.\n\n Why restrict "],"clone_on_copy":["Warn","\nChecks for usage of .clone() on a Copy type.\n\n Why is this bad?\nThe only reason Copy types implemen"],"unsafe_vector_initialization":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis lint used to suggest replacing le"],"vec_box":["Warn","\nChecks for usage of Vec<Box<T>> where T: Sized anywhere in the code.\nCheck the [Box documentation]("],"redundant_type_annotations":[C[0],"\nWarns about needless / redundant type annotations.\n\n Why restrict this?\nCode without type annotatio"],"enum_variant_names":["Warn","\nDetects enumeration variants that are prefixed or suffixed\nby the same characters.\n\n Why is this ba"],"double_neg":["Warn","\nDetects expressions of the form --x.\n\n Why is this bad?\nIt can mislead C/C++ programmers to think x"],"manual_bits":["Warn","\nChecks for usage of std::mem::size_of::<T>() * 8 when\nT::BITS is available.\n\n Why is this bad?\nCan "],"default_instead_of_iter_empty":["Warn","\nIt checks for std::iter::Empty::default() and suggests replacing it with\nstd::iter::empty().\n Why i"],"type_complexity":["Warn","\nChecks for types used in structs, parameters and let\ndeclarations above a certain complexity thresh"],"iter_with_drain":[C[0],"\nChecks for usage of .drain(..) on Vec and VecDeque for iteration.\n\n Why is this bad?\n.into_iter() i"],"manual_c_str_literals":[C[0],"\nChecks for the manual creation of C strings (a string with a NUL byte at the end), either\nthrough o"],"uninit_vec":["Deny","\nChecks for set_len() call that creates Vec with uninitialized elements.\nThis is commonly caused by "],"redundant_allocation":["Warn","\nChecks for usage of redundant allocations anywhere in the code.\n\n Why is this bad?\nExpressions such"],"thread_local_initializer_can_be_made_const":["Warn","\nSuggests to use const in thread_local! macro if possible.\n Why is this bad?\n\nThe thread_local! macr"],"type_id_on_box":["Warn","\nLooks for calls to .type_id() on a Box<dyn _>.\n\n Why is this bad?\nThis almost certainly does not do"],"to_string_in_format_args":["Warn","\nChecks for [ToString::to_string](https://doc.rust-lang.org/std/string/trait.ToString.htmltymethod.t"],"join_absolute_paths":["Warn","\nChecks for calls to Path::join that start with a path separator (\\\\ or /).\n\n Why is this bad?\nIf th"],"doc_lazy_continuation":["Warn","\n\nIn CommonMark Markdown, the language used to write doc comments, a\nparagraph nested within a list "],"map_flatten":["Warn","\nChecks for usage of _.map(_).flatten(_) on Iterator and Option\n\n Why is this bad?\nReadability, this"],"iter_overeager_cloned":["Warn","\nChecks for usage of _.cloned().<func>() where call to .cloned() can be postponed.\n\n Why is this bad"],"unnecessary_join":[C[0],"\nChecks for usage of .collect::<Vec<String>>().join(\"\") on iterators.\n\n Why is this bad?\n.collect::<"],"needless_raw_string_hashes":[C[0],"\nChecks for raw string literals with an unnecessary amount of hashes around them.\n\n Why is this bad?"],"as_underscore":[C[0],"\nChecks for the usage of as _ conversion using inferred type.\n\n Why restrict this?\nThe conversion mi"],"extend_from_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::extend, wh"],"manual_retain":["Warn","\nChecks for code to be replaced by .retain().\n Why is this bad?\n.retain() is simpler and avoids need"],"overflow_check_conditional":["Warn","\nDetects classic underflow/overflow checks.\n\n Why is this bad?\nMost classic C underflow/overflow che"],"cast_precision_loss":[C[0],"\nChecks for casts from any numerical to a float type where\nthe receiving type cannot store all value"],"field_scoped_visibility_modifiers":[C[0],"\nChecks for usage of scoped visibility modifiers, like pub(crate), on fields. These\nmake a field vis"],"collapsible_str_replace":["Warn","\nChecks for consecutive calls to str::replace (2 or more)\nthat can be collapsed into a single call.\n"],"nonstandard_macro_braces":[C[0],"\nChecks that common macros are used with consistent bracing.\n\n Why is this bad?\nThis is mostly a con"],"suspicious_doc_comments":["Warn","\nDetects the use of outer doc comments (///, /**) followed by a bang (!): ///!\n\n Why is this bad?\nTr"],"bind_instead_of_map":["Warn","\nChecks for usage of _.and_then(|x| Some(y)), _.and_then(|x| Ok(y)) or\n_.or_else(|x| Err(y)).\n\n Why "],"manual_clamp":["Warn","\nIdentifies good opportunities for a clamp function from std or core, and suggests using it.\n\n Why i"],"borrow_interior_mutable_const":["Warn","\nChecks if const items which is interior mutable (e.g.,\ncontains a Cell, Mutex, AtomicXxxx, etc.) ha"],"disallowed_methods":["Warn","\nDenies the configured methods and functions in clippy.toml\n\nNote: Even though this lint is warn-by-"],"mut_range_bound":["Warn","\nChecks for loops with a range bound that is a mutable variable.\n\n Why is this bad?\nOne might think "],"result_large_err":["Warn","\nChecks for functions that return Result with an unusually large\nErr-variant.\n\n Why is this bad?\nA R"],"unsafe_derive_deserialize":[C[0],"\nChecks for deriving serde::Deserialize on a type that\nhas methods using unsafe.\n\n Why is this bad?\n"],"needless_borrow":["Warn","\nChecks for address of operations (&) that are going to\nbe dereferenced immediately by the compiler."],"error_impl_error":[C[0],"\nChecks for types named Error that implement Error.\n\n Why restrict this?\nIt can become confusing whe"],"todo":[C[0],"\nChecks for usage of todo!.\n\n Why restrict this?\nThe todo! macro indicates the presence of unfinishe"],"iter_nth":["Warn","\nChecks for usage of .iter().nth()/.iter_mut().nth() on standard library types that have\nequivalent "],"range_step_by_zero":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nRange::step_by(0) used to be linted si"],"doc_markdown":[C[0],"\nChecks for the presence of _, :: or camel-case words\noutside ticks in documentation.\n\n Why is this "],"forget_non_drop":["Warn","\nChecks for calls to std::mem::forget with a value that does not implement Drop.\n\n Why is this bad?\n"],"size_of_ref":["Warn","\n\nChecks for calls to std::mem::size_of_val() where the argument is\na reference to a reference.\n\n Wh"],"unit_hash":["Deny","\nDetects ().hash(_).\n\n Why is this bad?\nHashing a unit value doesn't do anything as the implementati"],"single_component_path_imports":["Warn","\nChecking for imports with single component use path.\n\n Why is this bad?\nImport with single componen"],"unnecessary_fold":["Warn","\nChecks for usage of fold when a more succinct alternative exists.\nSpecifically, this checks for fol"],"if_let_mutex":["Deny","\nChecks for Mutex::lock calls in if let expression\nwith lock calls in any of the else blocks.\n\n Why "],"iterator_step_by_zero":["Deny","\nChecks for calling .step_by(0) on iterators which panics.\n\n Why is this bad?\nThis very much looks l"],"large_enum_variant":["Warn","\nChecks for large size differences between variants on\nenums.\n\n Why is this bad?\nEnum size is bounde"],"module_name_repetitions":[C[0],"\nDetects type names that are prefixed or suffixed by the\ncontaining module's name.\n\n Why is this bad"],"match_wild_err_arm":[C[0],"\nChecks for arm which matches all errors with Err(_)\nand take drastic actions like panic!.\n\n Why is "],"implicit_clone":[C[0],"\nChecks for the usage of _.to_owned(), vec.to_vec(), or similar when calling _.clone() would be clea"],"linkedlist":[C[0],"\nChecks for usage of any LinkedList, suggesting to use a\nVec or a VecDeque (formerly called RingBuf)"],"four_forward_slashes":["Warn","\nChecks for outer doc comments written with 4 forward slashes (////).\n\n Why is this bad?\nThis is (pr"],"mut_mutex_lock":["Warn","\nChecks for &mut Mutex::lock calls\n\n Why is this bad?\nMutex::lock is less efficient than\ncalling Mut"],"single_match_else":[C[0],"\nChecks for matches with two arms where an if let else will\nusually suffice.\n\n Why is this bad?\nJust"],"mismatched_target_os":["None",C[3]],"missing_docs_in_private_items":[C[0],"\nWarns if there is missing documentation for any private documentable item.\n\n Why restrict this?\nDoc"],"suspicious_else_formatting":["Warn","\nChecks for formatting of else. It lints if the else\nis followed immediately by a newline or the els"],"infallible_destructuring_match":["Warn","\nChecks for matches being used to destructure a single-variant enum\nor tuple struct where a let will"],"needless_borrows_for_generic_args":["Warn","\nChecks for borrow operations (&) that are used as a generic argument to a\nfunction when the borrowe"],"print_stdout":[C[0],"\nChecks for printing on *stdout*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"trivially_copy_pass_by_ref":[C[0],"\nChecks for functions taking arguments by reference, where\nthe argument type is Copy and small enoug"],"cognitive_complexity":[C[0],"\nChecks for methods with high cognitive complexity.\n\n Why is this bad?\nMethods of high cognitive com"],"empty_drop":[C[0],"\nChecks for empty Drop implementations.\n\n Why restrict this?\nEmpty Drop implementations have no effe"],"useless_transmute":["Warn","\nChecks for transmutes to the original type of the object\nand transmutes that could be a cast.\n\n Why"],"wildcard_dependencies":[C[0],"\nChecks for wildcard dependencies in the Cargo.toml.\n\n Why is this bad?\n[As the edition guide says]("],"unnecessary_min_or_max":["Warn","\nChecks for unnecessary calls to min() or max() in the following cases\n- Either both side is constan"],"unstable_as_slice":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for Vec::as_slice, "],"manual_filter":["Warn","\nChecks for usage of match which could be implemented using filter\n\n Why is this bad?\nUsing the filt"],"duration_subsec":["Warn","\nChecks for calculation of subsecond microseconds or milliseconds\nfrom other Duration methods.\n\n Why"],"manual_pattern_char_comparison":["Warn","\nChecks for manual char comparison in string patterns\n\n Why is this bad?\nThis can be written more co"],"missing_trait_methods":[C[0],"\nChecks if a provided method is used implicitly by a trait\nimplementation.\n\n Why restrict this?\nTo e"],"inherent_to_string":["Warn","\nChecks for the definition of inherent methods with a signature of to_string(&self) -> String.\n\n Why"],"verbose_bit_mask":[C[0],"\nChecks for bit masks that can be replaced by a call\nto trailing_zeros\n\n Why is this bad?\nx.trailing"],"zero_divided_by_zero":["Warn","\nChecks for 0.0 / 0.0.\n\n Why is this bad?\nIt's less readable than f32::NAN or f64::NAN.\n\n Example\nru"],"cast_possible_wrap":[C[0],"\nChecks for casts from an unsigned type to a signed type of\nthe same size, or possibly smaller due t"],"try_err":[C[0],"\nChecks for usage of Err(x)?.\n\n Why restrict this?\nThe ? operator is designed to allow calls that\nca"],"box_collection":["Warn","\nChecks for usage of Box<T> where T is a collection such as Vec anywhere in the code.\nCheck the [Box"],"enum_clike_unportable_variant":["Deny","\nChecks for C-like enumerations that are\nrepr(isize/usize) and have values that don't fit into an i3"],"single_char_add_str":["Warn","\nWarns when using push_str/insert_str with a single-character string literal\nwhere push/insert with "],"missing_fields_in_debug":[C[0],"\nChecks for manual [core::fmt::Debug](https://doc.rust-lang.org/core/fmt/trait.Debug.html) implement"],"legacy_numeric_constants":["Warn","\nChecks for usage of <integer>::max_value(), std::<integer>::MAX,\nstd::<float>::EPSILON, etc.\n\n Why "],"useless_asref":["Warn","\nChecks for usage of .as_ref() or .as_mut() where the\ntypes before and after the call are the same.\n"],"impossible_comparisons":["Deny","\nChecks for double comparisons that can never succeed\n\n Why is this bad?\nThe whole expression can be"],"manual_ok_or":[C[0],"\n\nFinds patterns that reimplement Option::ok_or.\n\n Why is this bad?\n\nConcise code helps focusing on "],"modulo_arithmetic":[C[0],"\nChecks for modulo arithmetic.\n\n Why restrict this?\nThe results of modulo (%) operation might differ"],"waker_clone_wake":["Warn","\nChecks for usage of waker.clone().wake()\n\n Why is this bad?\nCloning the waker is not necessary, wak"],"as_ptr_cast_mut":[C[0],"\nChecks for the result of a &self-taking as_ptr being cast to a mutable pointer\n\n Why is this bad?\nS"],"is_digit_ascii_radix":["Warn","\nFinds usages of [char::is_digit](https://doc.rust-lang.org/stable/std/primitive.char.htmlmethod.is_"],"match_result_ok":["Warn","\nChecks for unnecessary ok() in while let.\n\n Why is this bad?\nCalling ok() in while let is unnecessa"],"manual_slice_size_calculation":["Warn","\nWhen a is &[T], detect a.len() * size_of::<T>() and suggest size_of_val(a)\ninstead.\n\n Why is this b"],"never_loop":["Deny","\nChecks for loops that will always break, return or\ncontinue an outer loop.\n\n Why is this bad?\nThis "],"double_parens":["Warn","\nChecks for unnecessary double parentheses.\n\n Why is this bad?\nThis makes code harder to read and mi"],"redundant_comparisons":["Deny","\nChecks for ineffective double comparisons against constants.\n\n Why is this bad?\nOnly one of the com"],"reversed_empty_ranges":["Deny","\nChecks for range expressions x..y where both x and y\nare constant and x is greater to y. Also trigg"],"undocumented_unsafe_blocks":[C[0],"\nChecks for unsafe blocks and impls without a // SAFETY: comment\nexplaining why the unsafe operatio"],"manual_strip":["Warn","\nSuggests using strip_{prefix,suffix} over str::{starts,ends}_with and slicing using\nthe pattern's l"],"assertions_on_result_states":[C[0],"\nChecks for assert!(r.is_ok()) or assert!(r.is_err()) calls.\n\n Why restrict this?\nThis form of asser"],"println_empty_string":["Warn","\nThis lint warns when you use println!(\"\") to\nprint a newline.\n\n Why is this bad?\nYou should use pri"],"needless_continue":[C[0],"\nThe lint checks for if-statements appearing in loops\nthat contain a continue statement in either th"],"large_const_arrays":["Warn","\nChecks for large const arrays that should\nbe defined as static instead.\n\n Why is this bad?\nPerforma"],"needless_arbitrary_self_type":["Warn","\nThe lint checks for self in fn parameters that\nspecify the Self-type explicitly\n Why is this bad?\nI"],"transmute_ptr_to_ptr":[C[0],"\nChecks for transmutes from a pointer to a pointer, or\nfrom a reference to a reference.\n\n Why is thi"],"unused_rounding":[C[0],"\n\nDetects cases where a whole-number literal float is being rounded, using\nthe floor, ceil, or round"],"invisible_characters":["Deny","\nChecks for invisible Unicode characters in the code.\n\n Why is this bad?\nHaving an invisible charact"],"cast_lossless":[C[0],"\nChecks for casts between numerical types that may\nbe replaced by safe conversion functions.\n\n Why i"],"invalid_null_ptr_usage":["Deny","\nThis lint checks for invalid usages of ptr::null.\n\n Why is this bad?\nThis causes undefined behavior"],"bool_assert_comparison":["Warn","\nThis lint warns about boolean comparisons in assert-like macros.\n\n Why is this bad?\nIt is shorter t"],"disallowed_macros":["Warn","\nDenies the configured macros in clippy.toml\n\nNote: Even though this lint is warn-by-default, it wil"],"renamed_function_params":[C[0],"\nLints when the name of function parameters from trait impl is\ndifferent than its default implementa"],"unwrap_or_default":["Warn","\nChecks for usages of the following functions with an argument that constructs a default value\n(e.g."],"manual_let_else":[C[0],"\n\nWarn of cases where let...else could be used\n\n Why is this bad?\n\nlet...else provides a standard co"],"arithmetic_side_effects":[C[0],"\nChecks any kind of arithmetic operation of any type.\n\nOperators like +, -, * or << are usually capa"],"needless_late_init":["Warn","\nChecks for late initializations that can be replaced by a let statement\nwith an initializer.\n\n Why "],"transmute_bytes_to_str":["Warn","\nChecks for transmutes from a &[u8] to a &str.\n\n Why is this bad?\nNot every byte slice is a valid UT"],"missing_const_for_fn":[C[0],"\nSuggests the use of const in functions and methods where possible.\n\n Why is this bad?\nNot having th"],"path_buf_push_overwrite":[C[0],"\n* Checks for [push](https://doc.rust-lang.org/std/path/struct.PathBuf.htmlmethod.push)\ncalls on Pat"],"get_first":["Warn","\nChecks for usage of x.get(0) instead of\nx.first() or x.front().\n\n Why is this bad?\nUsing x.first() "],"no_effect":["Warn","\nChecks for statements which have no effect.\n\n Why is this bad?\nUnlike dead code, these statements a"],"cast_possible_truncation":[C[0],"\nChecks for casts between numerical types that may\ntruncate large values. This is expected behavior,"],"multiple_crate_versions":[C[0],"\nChecks to see if multiple versions of a crate are being\nused.\n\n Why is this bad?\nThis bloats the si"],"tuple_array_conversions":[C[0],"\nChecks for tuple<=>array conversions that are not done with .into().\n\n Why is this bad?\nIt may be u"],"range_plus_one":[C[0],"\nChecks for exclusive ranges where 1 is added to the\nupper bound, e.g., x..(y+1).\n\n Why is this bad?"],"manual_unwrap_or_default":["Warn","\nChecks if a match or if let expression can be simplified using\n.unwrap_or_default().\n\n Why is this "],"redundant_field_names":["Warn","\nChecks for fields in struct literals where shorthands\ncould be used.\n\n Why is this bad?\nIf the fiel"],"big_endian_bytes":[C[0],"\nChecks for the usage of the to_be_bytes method and/or the function from_be_bytes.\n\n Why restrict th"],"needless_doctest_main":["Warn","\nChecks for fn main() { .. } in doctests\n\n Why is this bad?\nThe test can be shorter (and likely more"],"option_as_ref_cloned":[C[0],"\nChecks for usage of .as_ref().cloned() and .as_mut().cloned() on Options\n\n Why is this bad?\nThis ca"],"print_stderr":[C[0],"\nChecks for printing on *stderr*. The purpose of this lint\nis to catch debugging remnants.\n\n Why res"],"needless_character_iteration":["Warn","\nChecks if an iterator is used to check if a string is ascii.\n\n Why is this bad?\nThe str type alread"],"multiple_unsafe_ops_per_block":[C[0],"\nChecks for unsafe blocks that contain more than one unsafe operation.\n\n Why restrict this?\nCombined"],"invalid_upcast_comparisons":[C[0],"\nChecks for comparisons where the relation is always either\ntrue or false, but where one side has be"],"redundant_closure_call":["Warn","\nDetects closures called in the same expression where they\nare defined.\n\n Why is this bad?\nIt is unn"],"stable_sort_primitive":[C[0],"\nWhen sorting primitive values (integers, bools, chars, as well\nas arrays, slices, and tuples of suc"],"empty_loop":["Warn","\nChecks for empty loop expressions.\n\n Why is this bad?\nThese busy loops burn CPU cycles without doin"],"suspicious_unary_op_formatting":["Warn","\nChecks the formatting of a unary operator on the right hand side\nof a binary operator. It lints if "],"iter_over_hash_type":[C[0],"\nThis is a restriction lint which prevents the use of hash types (i.e., HashSet and HashMap) in for "],"if_then_some_else_none":[C[0],"\nChecks for if-else that could be written using either bool::then or bool::then_some.\n\n Why restrict"],"suspicious_operation_groupings":[C[0],"\nChecks for unlikely usages of binary operators that are almost\ncertainly typos and/or copy/paste er"],"drop_non_drop":["Warn","\nChecks for calls to std::mem::drop with a value that does not implement Drop.\n\n Why is this bad?\nCa"],"almost_complete_range":["Warn","\nChecks for ranges which almost include the entire range of letters from 'a' to 'z'\nor digits from '"],"mixed_attributes_style":["Warn","\nChecks for items that have the same kind of attributes with mixed styles (inner/outer).\n\n Why is th"],"branches_sharing_code":[C[0],"\nChecks if the if and else block contain shared code that can be\nmoved out of the blocks.\n\n Why is t"],"cargo_common_metadata":[C[0],"\nChecks to see if all common metadata is defined in\nCargo.toml. See: https://rust-lang-nursery.githu"],"manual_hash_one":["Warn","\nChecks for cases where [BuildHasher::hash_one] can be used.\n\n[BuildHasher::hash_one]: https://doc.r"],"redundant_static_lifetimes":["Warn","\nChecks for constants and statics with an explicit 'static lifetime.\n\n Why is this bad?\nAdding 'stat"],"unit_return_expecting_ord":["Deny","\nChecks for functions that expect closures of type\nFn(...) -> Ord where the implemented closure retu"],"redundant_pattern_matching":["Warn","\nLint for redundant pattern matching over Result, Option,\nstd::task::Poll, std::net::IpAddr or bools"],"ref_as_ptr":[C[0],"\nChecks for casts of references to pointer using as\nand suggests std::ptr::from_ref and std::ptr::fr"],"transmute_float_to_int":["Warn","\nChecks for transmutes from a float to an integer.\n\n Why is this bad?\nTransmutes are dangerous and e"],"multi_assignments":["Warn","\nChecks for nested assignments.\n\n Why is this bad?\nWhile this is in most cases already a type mismat"],"writeln_empty_string":["Warn","\nThis lint warns when you use writeln!(buf, \"\") to\nprint a newline.\n\n Why is this bad?\nYou should us"],"unnecessary_operation":["Warn","\nChecks for expression statements that can be reduced to a\nsub-expression.\n\n Why is this bad?\nExpres"],"missing_asserts_for_indexing":[C[0],"\nChecks for repeated slice indexing without asserting beforehand that the length\nis greater than the"],"non_canonical_clone_impl":["Warn","\nChecks for non-canonical implementations of Clone when Copy is already implemented.\n\n Why is this b"],"fn_to_numeric_cast":["Warn","\nChecks for casts of function pointers to something other than usize\n\n Why is this bad?\nCasting a fu"],"format_push_string":[C[0],"\nDetects cases where the result of a format! call is\nappended to an existing String.\n\n Why restrict "],"struct_field_names":[C[0],"\nDetects struct fields that are prefixed or suffixed\nby the same characters or the name of the struc"],"infinite_loop":[C[0],"\nChecks for infinite loops in a function where the return type is not !\nand lint accordingly.\n\n Why "],"equatable_if_let":[C[0],"\nChecks for pattern matchings that can be expressed using equality.\n\n Why is this bad?\n\n* It reads b"],"transmute_int_to_non_zero":["Warn","\nChecks for transmutes from T to NonZero<T>, and suggests the new_unchecked\nmethod instead.\n\n Why is"],"eager_transmute":["Deny","\nChecks for integer validity checks, followed by a transmute that is (incorrectly) evaluated\neagerly"],"impl_trait_in_params":[C[0],"\nLints when impl Trait is being used in a function's parameters.\n\n Why restrict this?\nTurbofish synt"],"iter_on_empty_collections":[C[0],"\n\nChecks for calls to iter, iter_mut or into_iter on empty collections\n\n Why is this bad?\n\nIt is sim"],"let_underscore_untyped":[C[0],"\nChecks for let _ = <expr> without a type annotation, and suggests to either provide one,\nor remove "],"map_unwrap_or":[C[0],"\nChecks for usage of option.map(_).unwrap_or(_) or option.map(_).unwrap_or_else(_) or\nresult.map(_)."],"mixed_read_write_in_expression":[C[0],"\nChecks for a read and a write to the same variable where\nwhether the read occurs before or after th"],"module_inception":["Warn","\nChecks for modules that have the same name as their\nparent module\n\n Why is this bad?\nA typical begi"],"neg_cmp_op_on_partial_ord":["Warn","\nChecks for the usage of negated comparison operators on types which only implement\nPartialOrd (e.g."],"partial_pub_fields":[C[0],"\nChecks whether some but not all fields of a struct are public.\n\nEither make all fields of a type pu"],"unnecessary_clippy_cfg":["Warn","\nChecks for [cfg_attr(clippy, allow(clippy::lint))]\nand suggests to replace it with [allow(clippy::l"],"manual_range_contains":["Warn","\nChecks for expressions like x >= 3 && x < 8 that could\nbe more readably expressed as (3..8).contain"],"unused_self":[C[0],"\nChecks methods that contain a self argument but don't use it\n\n Why is this bad?\nIt may be clearer t"],"if_let_redundant_pattern_matching":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThe original rule will only lint for i"],"should_assert_eq":["None","\nNothing. This lint has been deprecated.\n\n Deprecation reason\nThis used to check for assert!(a == b)"],"mem_replace_option_with_none":["Warn","\nChecks for mem::replace() on an Option with\nNone.\n\n Why is this bad?\nOption already has the method "],"option_env_unwrap":["Deny","\nChecks for usage of option_env!(...).unwrap() and\nsuggests usage of the env! macro.\n\n Why is this b"],"borrowed_box":["Warn","\nChecks for usage of &Box<T> anywhere in the code.\nCheck the [Box documentation](https://doc.rust-la"],"inline_asm_x86_att_syntax":[C[0],"\nChecks for usage of AT&T x86 assembly syntax.\n\n Why restrict this?\nTo enforce consistent use of Int"],"lossy_float_literal":[C[0],"\nChecks for whole number float literals that\ncannot be represented as the underlying type without lo"],"semicolon_inside_block":[C[0],"\n\nSuggests moving the semicolon after a block to the inside of the block, after its last\nexpression."],"else_if_without_else":[C[0],"\nChecks for usage of if expressions with an else if branch,\nbut without a final else branch.\n\n Why r"],"indexing_slicing":[C[0],"\nChecks for usage of indexing or slicing. Arrays are special cases, this lint\ndoes report on arrays "],"ptr_arg":["Warn","\nThis lint checks for function arguments of type &String, &Vec,\n&PathBuf, and Cow<_>. It will also s"],"arc_with_non_send_sync":["Warn",".\nThis lint warns when you use Arc with a type that does not implement Send or Sync.\n\n Why is this b"],"manual_flatten":["Warn","\nChecks for unnecessary if let usage in a for loop\nwhere only the Some or Ok variant of the iterator"],"manual_saturating_arithmetic":["Warn","\nChecks for .checked_add/sub(x).unwrap_or(MAX/MIN).\n\n Why is this bad?\nThese can be written simply w"],"almost_swapped":["Deny","\nChecks for foo = bar; bar = foo sequences.\n\n Why is this bad?\nThis looks like a failed attempt to s"],"min_max":["Deny","\nChecks for expressions where std::cmp::min and max are\nused to clamp values, but switched so that t"],"single_element_loop":["Warn","\nChecks whether a for loop has a single element.\n\n Why is this bad?\nThere is no reason to have a loo"],"create_dir":[C[0],"\nChecks usage of std::fs::create_dir and suggest using std::fs::create_dir_all instead.\n\n Why restri"],"unicode_not_nfc":[C[0],"\nChecks for string literals that contain Unicode in a form\nthat is not equal to its\n[NFC-recompositi"],"unnecessary_mut_passed":["Warn","\nDetects passing a mutable reference to a function that only\nrequires an immutable reference.\n\n Why "],"iter_count":["Warn","\nChecks for the use of .iter().count().\n\n Why is this bad?\n.len() is more efficient and more\nreadabl"],"iter_filter_is_ok":[C[0],"\nChecks for usage of .filter(Result::is_ok) that may be replaced with a .flatten() call.\nThis lint w"],"inconsistent_struct_constructor":[C[0],"\nChecks for struct constructors where all fields are shorthand and\nthe order of the field init short"],"panicking_unwrap":["Deny","\nChecks for calls of unwrap[_err]() that will always fail.\n\n Why is this bad?\nIf panicking is desire"],"large_stack_arrays":[C[0],"\nChecks for local arrays that may be too large.\n\n Why is this bad?\nLarge local arrays may cause stac"],"let_with_type_underscore":["Warn","\nDetects when a variable is declared with an explicit type of _.\n Why is this bad?\nIt adds noise, : "],"pub_with_shorthand":[C[0],"\nChecks for usage of pub(<loc>) with in.\n\n Why restrict this?\nConsistency. Use it or don't, just be "],"blanket_clippy_restriction_lints":["Warn","\nChecks for warn/deny/forbid attributes targeting the whole clippy::restriction category.\n\n Why is t"],"implicit_saturating_add":["Warn","\nChecks for implicit saturating addition.\n\n Why is this bad?\nThe built-in function is more readable "],"imprecise_flops":[C[0],"\nLooks for floating-point expressions that\ncan be expressed using built-in methods to improve accura"],"let_underscore_lock":["Deny","\nChecks for let _ = sync_lock. This supports mutex and rwlock in\nparking_lot. For std locks see the "],"should_implement_trait":["Warn","\nChecks for methods that should live in a trait\nimplementation of a std trait (see [llogiq's blog\npo"],"empty_line_after_outer_attr":[C[0],"\nChecks for empty lines after outer attributes\n\n Why is this bad?\nMost likely the attribute was mean"],"manual_assert":[C[0],"\nDetects if-then-panic! that can be replaced with assert!.\n\n Why is this bad?\nassert! is simpler tha"],"expect_fun_call":["Warn","\nChecks for calls to .expect(&format!(...)), .expect(foo(..)),\netc., and suggests to use unwrap_or_e"],"match_overlapping_arm":["Warn","\nChecks for overlapping match arms.\n\n Why is this bad?\nIt is likely to be an error and if not, makes"],"option_filter_map":["Warn","\nChecks for iterators of Options using .filter(Option::is_some).map(Option::unwrap) that may\nbe repl"],"integer_division_remainder_used":[C[0],"\nChecks for the usage of division (/) and remainder (%) operations\nwhen performed on any integer typ"],"str_to_string":[C[0],"\nThis lint checks for .to_string() method calls on values of type &str.\n\n Why restrict this?\nThe to_"],"filter_map_bool_then":["Warn","\nChecks for usage of bool::then in Iterator::filter_map.\n\n Why is this bad?\nThis can be written with"],"option_map_or_none":["Warn","\nChecks for usage of _.map_or(None, _).\n\n Why is this bad?\nReadability, this can be written more con"],"builtin_type_shadow":["Warn","\nWarns if a generic shadows a built-in type.\n\n Why is this bad?\nThis gives surprising type errors.\n\n"],"match_str_case_mismatch":["Deny","\nChecks for match expressions modifying the case of a string with non-compliant arms\n\n Why is this b"],"precedence":["Warn","\nChecks for operations where precedence may be unclear\nand suggests to add parentheses. Currently it"],"wildcard_enum_match_arm":[C[0],"\nChecks for wildcard enum matches using _.\n\n Why restrict this?\nNew enum variants added by library u"],"unsound_collection_transmute":["Deny","\nChecks for transmutes between collections whose\ntypes have different ABI, size or alignment.\n\n Why "],"manual_is_variant_and":[C[0],"\nChecks for usage of option.map(f).unwrap_or_default() and result.map(f).unwrap_or_default() where f"],"explicit_deref_methods":[C[0],"\nChecks for explicit deref() or deref_mut() method calls.\n\n Why is this bad?\nDereferencing by &*x or"],"decimal_literal_representation":[C[0],"\nWarns if there is a better representation for a numeric literal.\n\n Why restrict this?\nEspecially fo"],"single_match":["Warn","\nChecks for matches with a single arm where an if let\nwill usually suffice.\n\nThis intentionally does"],"disallowed_script_idents":[C[0],"\nChecks for usage of unicode scripts other than those explicitly allowed\nby the lint config.\n\nThis l"],"expl_impl_clone_on_copy":[C[0],"\nChecks for explicit Clone implementations for Copy\ntypes.\n\n Why is this bad?\nTo avoid surprising be"],"cast_enum_constructor":["Warn","\nChecks for casts from an enum tuple constructor to an integer.\n\n Why is this bad?\nThe cast is easil"],"from_str_radix_10":["Warn","\n\nChecks for function invocations of the form primitive::from_str_radix(s, 10)\n\n Why is this bad?\n\nT"],"match_ref_pats":["Warn","\nChecks for matches where all arms match a reference,\nsuggesting to remove the reference and deref t"],"negative_feature_names":[C[0],"\nChecks for negative feature names with prefix no- or not-\n\n Why is this bad?\nFeatures are supposed "],"deprecated_cfg_attr":["Warn","\nChecks for [cfg_attr(rustfmt, rustfmt_skip)] and suggests to replace it\nwith [rustfmt::skip].\n\n Why"],"partialeq_ne_impl":["Warn","\nChecks for manual re-implementations of PartialEq::ne.\n\n Why is this bad?\nPartialEq::ne is required"],"alloc_instead_of_core":[C[0],"\nFinds items imported through alloc when available through core.\n\n Why restrict this?\nCrates which h"],"extra_unused_type_parameters":["Warn","\nChecks for type parameters in generics that are never used anywhere else.\n\n Why is this bad?\nFuncti"],"match_wildcard_for_single_variants":[C[0],"\nChecks for wildcard enum matches for a single variant.\n\n Why is this bad?\nNew enum variants added b"],"chars_next_cmp":["Warn","\nChecks for usage of .chars().next() on a str to check\nif it starts with a given char.\n\n Why is this"],"match_same_arms":[C[0],"\nChecks for match with identical arm bodies.\n\nNote: Does not lint on wildcards if the non_exhaustive"],"missing_assert_message":[C[0],"\nChecks assertions without a custom panic message.\n\n Why restrict this?\nWithout a good custom messag"],"transmute_undefined_repr":[C[0],"\nChecks for transmutes between types which do not have a representation defined relative to\neach oth"],"bool_comparison":["Warn","\nChecks for expressions of the form x == true,\nx != true and order comparisons such as x < true (or "]};export default lintsIndex; \ No newline at end of file diff --git a/rust/src/tasks/lints.rs b/rust/src/tasks/lints.rs index cc734d6..9bb1de2 100644 --- a/rust/src/tasks/lints.rs +++ b/rust/src/tasks/lints.rs @@ -11,7 +11,7 @@ use tokio::runtime::Runtime; use crate::minify::Minifier; use crate::tasks::Task; -const LINT_URL: &str = "https://rust-lang.github.io/rust-clippy/master/lints.json"; +const LINT_URL: &str = "https://rust-lang.github.io/rust-clippy/stable/lints.json"; const LINTS_INDEX_PATH: &str = "../lib/index/lints.js"; /// Lint task