CINXE.COM
std - Rust
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="The Rust Standard Library"><title>std - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-6c3ea77c.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="std" data-themes="" data-resource-suffix="1.86.0" data-rustdoc-version="1.86.0 (05f9846f8 2025-03-31)" data-channel="1.86.0" data-search-js="search-581efc7a.js" data-settings-js="settings-6dad6058.js" ><script src="../static.files/storage-3a5871a4.js"></script><script defer src="../crates1.86.0.js"></script><script defer src="../static.files/main-4d63596a.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-893ab5e7.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-6580c154.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc mod crate"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button><a class="logo-container" href="../std/index.html"><img class="rust-logo" src="../static.files/rust-logo-9a9549ea.svg" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../std/index.html"><img class="rust-logo" src="../static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="../std/index.html">std</a><span class="version">1.86.0</span></h2></div><div class="version">(05f9846f8 2025-03-31)</div><div class="sidebar-elems"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#the-rust-standard-library" title="The Rust Standard Library">The Rust Standard Library</a></li><li><a href="#how-to-read-this-documentation" title="How to read this documentation">How to read this documentation</a></li><li><a href="#what-is-in-the-standard-library-documentation" title="What is in the standard library documentation?">What is in the standard library documentation?</a></li><li><a href="#contributing-changes-to-the-documentation" title="Contributing changes to the documentation">Contributing changes to the documentation</a></li><li><a href="#a-tour-of-the-rust-standard-library" title="A Tour of The Rust Standard Library">A Tour of The Rust Standard Library</a><ul><li><a href="#containers-and-collections" title="Containers and collections">Containers and collections</a></li><li><a href="#platform-abstractions-and-io" title="Platform abstractions and I/O">Platform abstractions and I/O</a></li></ul></li><li><a href="#use-before-and-after-main" title="Use before and after `main()`">Use before and after <code>main()</code></a></li></ul><h3><a href="#primitives">Crate Items</a></h3><ul class="block"><li><a href="#primitives" title="Primitive Types">Primitive Types</a></li><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#macros" title="Macros">Macros</a></li><li><a href="#keywords" title="Keywords">Keywords</a></li></ul></section><div id="rustdoc-modnav"></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Crate <span>std</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="../src/std/lib.rs.html#1-745">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><h2 id="the-rust-standard-library"><a class="doc-anchor" href="#the-rust-standard-library">§</a>The Rust Standard Library</h2> <p>The Rust Standard Library is the foundation of portable Rust software, a set of minimal and battle-tested shared abstractions for the <a href="https://crates.io">broader Rust ecosystem</a>. It offers core types, like <a href="vec/struct.Vec.html" title="struct std::vec::Vec"><code>Vec<T></code></a> and <a href="option/enum.Option.html" title="enum std::option::Option"><code>Option<T></code></a>, library-defined <a href="#primitives">operations on language primitives</a>, <a href="#macros">standard macros</a>, <a href="io/index.html" title="mod std::io">I/O</a> and <a href="thread/index.html" title="mod std::thread">multithreading</a>, among <a href="#what-is-in-the-standard-library-documentation">many other things</a>.</p> <p><code>std</code> is available to all Rust crates by default. Therefore, the standard library can be accessed in <a href="../book/ch07-02-defining-modules-to-control-scope-and-privacy.html"><code>use</code></a> statements through the path <code>std</code>, as in <a href="env/index.html"><code>use std::env</code></a>.</p> <h2 id="how-to-read-this-documentation"><a class="doc-anchor" href="#how-to-read-this-documentation">§</a>How to read this documentation</h2> <p>If you already know the name of what you are looking for, the fastest way to find it is to use the <a href="#" onclick="window.searchState.focus();">search bar</a> at the top of the page.</p> <p>Otherwise, you may want to jump to one of these useful sections:</p> <ul> <li><a href="#modules"><code>std::*</code> modules</a></li> <li><a href="#primitives">Primitive types</a></li> <li><a href="#macros">Standard macros</a></li> <li><a href="prelude/index.html" title="mod std::prelude">The Rust Prelude</a></li> </ul> <p>If this is your first time, the documentation for the standard library is written to be casually perused. Clicking on interesting things should generally lead you to interesting places. Still, there are important bits you don’t want to miss, so read on for a tour of the standard library and its documentation!</p> <p>Once you are familiar with the contents of the standard library you may begin to find the verbosity of the prose distracting. At this stage in your development you may want to press the “<svg style="width:0.75rem;height:0.75rem" viewBox="0 0 12 12" stroke="currentColor" fill="none"><path d="M2,2l4,4l4,-4M2,6l4,4l4,-4"/></svg> Summary” button near the top of the page to collapse it into a more skimmable view.</p> <p>While you are looking at the top of the page, also notice the “Source” link. Rust’s API documentation comes with the source code and you are encouraged to read it. The standard library source is generally high quality and a peek behind the curtains is often enlightening.</p> <h2 id="what-is-in-the-standard-library-documentation"><a class="doc-anchor" href="#what-is-in-the-standard-library-documentation">§</a>What is in the standard library documentation?</h2> <p>First of all, The Rust Standard Library is divided into a number of focused modules, <a href="#modules">all listed further down this page</a>. These modules are the bedrock upon which all of Rust is forged, and they have mighty names like <a href="slice/index.html" title="mod std::slice"><code>std::slice</code></a> and <a href="cmp/index.html" title="mod std::cmp"><code>std::cmp</code></a>. Modules’ documentation typically includes an overview of the module along with examples, and are a smart place to start familiarizing yourself with the library.</p> <p>Second, implicit methods on <a href="../book/ch03-02-data-types.html">primitive types</a> are documented here. This can be a source of confusion for two reasons:</p> <ol> <li>While primitives are implemented by the compiler, the standard library implements methods directly on the primitive types (and it is the only library that does so), which are <a href="#primitives">documented in the section on primitives</a>.</li> <li>The standard library exports many modules <em>with the same name as primitive types</em>. These define additional items related to the primitive type, but not the all-important methods.</li> </ol> <p>So for example there is a <a href="primitive.i32.html" title="primitive i32">page for the primitive type <code>i32</code></a> that lists all the methods that can be called on 32-bit integers (very useful), and there is a <a href="i32/index.html" title="mod std::i32">page for the module <code>std::i32</code></a> that documents the constant values <a href="i32/constant.MIN.html" title="constant std::i32::MIN"><code>MIN</code></a> and <a href="i32/constant.MAX.html" title="constant std::i32::MAX"><code>MAX</code></a> (rarely useful).</p> <p>Note the documentation for the primitives <a href="primitive.str.html" title="primitive str"><code>str</code></a> and <a href="primitive.slice.html" title="primitive slice"><code>[T]</code></a> (also called ‘slice’). Many method calls on <a href="string/struct.String.html" title="struct std::string::String"><code>String</code></a> and <a href="vec/struct.Vec.html" title="struct std::vec::Vec"><code>Vec<T></code></a> are actually calls to methods on <a href="primitive.str.html" title="primitive str"><code>str</code></a> and <a href="primitive.slice.html" title="primitive slice"><code>[T]</code></a> respectively, via <a href="../book/ch15-02-deref.html#implicit-deref-coercions-with-functions-and-methods">deref coercions</a>.</p> <p>Third, the standard library defines <a href="prelude/index.html" title="mod std::prelude">The Rust Prelude</a>, a small collection of items - mostly traits - that are imported into every module of every crate. The traits in the prelude are pervasive, making the prelude documentation a good entry point to learning about the library.</p> <p>And finally, the standard library exports a number of standard macros, and <a href="#macros">lists them on this page</a> (technically, not all of the standard macros are defined by the standard library - some are defined by the compiler - but they are documented here the same). Like the prelude, the standard macros are imported by default into all crates.</p> <h2 id="contributing-changes-to-the-documentation"><a class="doc-anchor" href="#contributing-changes-to-the-documentation">§</a>Contributing changes to the documentation</h2> <p>Check out the Rust contribution guidelines <a href="https://rustc-dev-guide.rust-lang.org/contributing.html#writing-documentation">here</a>. The source for this documentation can be found on <a href="https://github.com/rust-lang/rust">GitHub</a> in the ‘library/std/’ directory. To contribute changes, make sure you read the guidelines first, then submit pull-requests for your suggested changes.</p> <p>Contributions are appreciated! If you see a part of the docs that can be improved, submit a PR, or chat with us first on <a href="https://discord.gg/rust-lang">Discord</a> #docs.</p> <h2 id="a-tour-of-the-rust-standard-library"><a class="doc-anchor" href="#a-tour-of-the-rust-standard-library">§</a>A Tour of The Rust Standard Library</h2> <p>The rest of this crate documentation is dedicated to pointing out notable features of The Rust Standard Library.</p> <h3 id="containers-and-collections"><a class="doc-anchor" href="#containers-and-collections">§</a>Containers and collections</h3> <p>The <a href="option/index.html" title="mod std::option"><code>option</code></a> and <a href="result/index.html" title="mod std::result"><code>result</code></a> modules define optional and error-handling types, <a href="option/enum.Option.html" title="enum std::option::Option"><code>Option<T></code></a> and <a href="result/enum.Result.html" title="enum std::result::Result"><code>Result<T, E></code></a>. The <a href="iter/index.html" title="mod std::iter"><code>iter</code></a> module defines Rust’s iterator trait, <a href="iter/trait.Iterator.html" title="trait std::iter::Iterator"><code>Iterator</code></a>, which works with the <a href="../book/ch03-05-control-flow.html#looping-through-a-collection-with-for"><code>for</code></a> loop to access collections.</p> <p>The standard library exposes three common ways to deal with contiguous regions of memory:</p> <ul> <li><a href="vec/struct.Vec.html" title="struct std::vec::Vec"><code>Vec<T></code></a> - A heap-allocated <em>vector</em> that is resizable at runtime.</li> <li><a href="primitive.array.html" title="primitive array"><code>[T; N]</code></a> - An inline <em>array</em> with a fixed size at compile time.</li> <li><a href="primitive.slice.html" title="primitive slice"><code>[T]</code></a> - A dynamically sized <em>slice</em> into any other kind of contiguous storage, whether heap-allocated or not.</li> </ul> <p>Slices can only be handled through some kind of <em>pointer</em>, and as such come in many flavors such as:</p> <ul> <li><code>&[T]</code> - <em>shared slice</em></li> <li><code>&mut [T]</code> - <em>mutable slice</em></li> <li><a href="boxed/index.html" title="mod std::boxed"><code>Box<[T]></code></a> - <em>owned slice</em></li> </ul> <p><a href="primitive.str.html" title="primitive str"><code>str</code></a>, a UTF-8 string slice, is a primitive type, and the standard library defines many methods for it. Rust <a href="primitive.str.html" title="primitive str"><code>str</code></a>s are typically accessed as immutable references: <code>&str</code>. Use the owned <a href="string/struct.String.html" title="struct std::string::String"><code>String</code></a> for building and mutating strings.</p> <p>For converting to strings use the <a href="macro.format.html" title="macro std::format"><code>format!</code></a> macro, and for converting from strings use the <a href="str/trait.FromStr.html" title="trait std::str::FromStr"><code>FromStr</code></a> trait.</p> <p>Data may be shared by placing it in a reference-counted box or the <a href="rc/struct.Rc.html" title="struct std::rc::Rc"><code>Rc</code></a> type, and if further contained in a <a href="cell/struct.Cell.html" title="struct std::cell::Cell"><code>Cell</code></a> or <a href="cell/struct.RefCell.html" title="struct std::cell::RefCell"><code>RefCell</code></a>, may be mutated as well as shared. Likewise, in a concurrent setting it is common to pair an atomically-reference-counted box, <a href="sync/struct.Arc.html" title="struct std::sync::Arc"><code>Arc</code></a>, with a <a href="sync/struct.Mutex.html" title="struct std::sync::Mutex"><code>Mutex</code></a> to get the same effect.</p> <p>The <a href="collections/index.html" title="mod std::collections"><code>collections</code></a> module defines maps, sets, linked lists and other typical collection types, including the common <a href="collections/struct.HashMap.html" title="struct std::collections::HashMap"><code>HashMap<K, V></code></a>.</p> <h3 id="platform-abstractions-and-io"><a class="doc-anchor" href="#platform-abstractions-and-io">§</a>Platform abstractions and I/O</h3> <p>Besides basic data types, the standard library is largely concerned with abstracting over differences in common platforms, most notably Windows and Unix derivatives.</p> <p>Common types of I/O, including <a href="fs/struct.File.html" title="struct std::fs::File">files</a>, <a href="net/struct.TcpStream.html" title="struct std::net::TcpStream">TCP</a>, and <a href="net/struct.UdpSocket.html" title="struct std::net::UdpSocket">UDP</a>, are defined in the <a href="io/index.html" title="mod std::io"><code>io</code></a>, <a href="fs/index.html" title="mod std::fs"><code>fs</code></a>, and <a href="net/index.html" title="mod std::net"><code>net</code></a> modules.</p> <p>The <a href="thread/index.html" title="mod std::thread"><code>thread</code></a> module contains Rust’s threading abstractions. <a href="sync/index.html" title="mod std::sync"><code>sync</code></a> contains further primitive shared memory types, including <a href="sync/atomic/index.html" title="mod std::sync::atomic"><code>atomic</code></a>, <a href="sync/mpmc/index.html" title="mod std::sync::mpmc"><code>mpmc</code></a> and <a href="sync/mpsc/index.html" title="mod std::sync::mpsc"><code>mpsc</code></a>, which contains the channel types for message passing.</p> <h2 id="use-before-and-after-main"><a class="doc-anchor" href="#use-before-and-after-main">§</a>Use before and after <code>main()</code></h2> <p>Many parts of the standard library are expected to work before and after <code>main()</code>; but this is not guaranteed or ensured by tests. It is recommended that you write your own tests and run them on each platform you wish to support. This means that use of <code>std</code> before/after main, especially of features that interact with the OS or global state, is exempted from stability and portability guarantees and instead only provided on a best-effort basis. Nevertheless bug reports are appreciated.</p> <p>On the other hand <code>core</code> and <code>alloc</code> are most likely to work in such environments with the caveat that any hookable behavior such as panics, oom handling or allocators will also depend on the compatibility of the hooks.</p> <p>Some features may also behave differently outside main, e.g. stdio could become unbuffered, some panics might turn into aborts, backtraces might not get symbolicated or similar.</p> <p>Non-exhaustive list of known limitations:</p> <ul> <li>after-main use of thread-locals, which also affects additional features: <ul> <li><a href="thread/fn.current.html" title="fn std::thread::current"><code>thread::current()</code></a></li> </ul> </li> <li>before-main stdio file descriptors are not guaranteed to be open on unix platforms</li> </ul> </div></details><h2 id="primitives" class="section-header">Primitive Types<a href="#primitives" class="anchor">§</a></h2><dl class="item-table"><dt><a class="primitive" href="primitive.array.html" title="primitive std::array">array</a></dt><dd>A fixed-size array, denoted <code>[T; N]</code>, for the element type, <code>T</code>, and the non-negative compile-time constant size, <code>N</code>.</dd><dt><a class="primitive" href="primitive.bool.html" title="primitive std::bool">bool</a></dt><dd>The boolean type.</dd><dt><a class="primitive" href="primitive.char.html" title="primitive std::char">char</a></dt><dd>A character type.</dd><dt><a class="primitive" href="primitive.f32.html" title="primitive std::f32">f32</a></dt><dd>A 32-bit floating-point type (specifically, the “binary32” type defined in IEEE 754-2008).</dd><dt><a class="primitive" href="primitive.f64.html" title="primitive std::f64">f64</a></dt><dd>A 64-bit floating-point type (specifically, the “binary64” type defined in IEEE 754-2008).</dd><dt><a class="primitive" href="primitive.fn.html" title="primitive std::fn">fn</a></dt><dd>Function pointers, like <code>fn(usize) -> bool</code>.</dd><dt><a class="primitive" href="primitive.i8.html" title="primitive std::i8">i8</a></dt><dd>The 8-bit signed integer type.</dd><dt><a class="primitive" href="primitive.i16.html" title="primitive std::i16">i16</a></dt><dd>The 16-bit signed integer type.</dd><dt><a class="primitive" href="primitive.i32.html" title="primitive std::i32">i32</a></dt><dd>The 32-bit signed integer type.</dd><dt><a class="primitive" href="primitive.i64.html" title="primitive std::i64">i64</a></dt><dd>The 64-bit signed integer type.</dd><dt><a class="primitive" href="primitive.i128.html" title="primitive std::i128">i128</a></dt><dd>The 128-bit signed integer type.</dd><dt><a class="primitive" href="primitive.isize.html" title="primitive std::isize">isize</a></dt><dd>The pointer-sized signed integer type.</dd><dt><a class="primitive" href="primitive.pointer.html" title="primitive std::pointer">pointer</a></dt><dd>Raw, unsafe pointers, <code>*const T</code>, and <code>*mut T</code>.</dd><dt><a class="primitive" href="primitive.reference.html" title="primitive std::reference">reference</a></dt><dd>References, <code>&T</code> and <code>&mut T</code>.</dd><dt><a class="primitive" href="primitive.slice.html" title="primitive std::slice">slice</a></dt><dd>A dynamically-sized view into a contiguous sequence, <code>[T]</code>.</dd><dt><a class="primitive" href="primitive.str.html" title="primitive std::str">str</a></dt><dd>String slices.</dd><dt><a class="primitive" href="primitive.tuple.html" title="primitive std::tuple">tuple</a></dt><dd>A finite heterogeneous sequence, <code>(T, U, ..)</code>.</dd><dt><a class="primitive" href="primitive.u8.html" title="primitive std::u8">u8</a></dt><dd>The 8-bit unsigned integer type.</dd><dt><a class="primitive" href="primitive.u16.html" title="primitive std::u16">u16</a></dt><dd>The 16-bit unsigned integer type.</dd><dt><a class="primitive" href="primitive.u32.html" title="primitive std::u32">u32</a></dt><dd>The 32-bit unsigned integer type.</dd><dt><a class="primitive" href="primitive.u64.html" title="primitive std::u64">u64</a></dt><dd>The 64-bit unsigned integer type.</dd><dt><a class="primitive" href="primitive.u128.html" title="primitive std::u128">u128</a></dt><dd>The 128-bit unsigned integer type.</dd><dt><a class="primitive" href="primitive.unit.html" title="primitive std::unit">unit</a></dt><dd>The <code>()</code> type, also called “unit”.</dd><dt><a class="primitive" href="primitive.usize.html" title="primitive std::usize">usize</a></dt><dd>The pointer-sized unsigned integer type.</dd><dt><a class="primitive" href="primitive.f16.html" title="primitive std::f16">f16</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>A 16-bit floating-point type (specifically, the “binary16” type defined in IEEE 754-2008).</dd><dt><a class="primitive" href="primitive.f128.html" title="primitive std::f128">f128</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>A 128-bit floating-point type (specifically, the “binary128” type defined in IEEE 754-2008).</dd><dt><a class="primitive" href="primitive.never.html" title="primitive std::never">never</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>The <code>!</code> type, also called “never”.</dd></dl><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="alloc/index.html" title="mod std::alloc">alloc</a></dt><dd>Memory allocation APIs.</dd><dt><a class="mod" href="any/index.html" title="mod std::any">any</a></dt><dd>Utilities for dynamic typing or type reflection.</dd><dt><a class="mod" href="arch/index.html" title="mod std::arch">arch</a></dt><dd>SIMD and vendor intrinsics module.</dd><dt><a class="mod" href="array/index.html" title="mod std::array">array</a></dt><dd>Utilities for the array primitive type.</dd><dt><a class="mod" href="ascii/index.html" title="mod std::ascii">ascii</a></dt><dd>Operations on ASCII strings and characters.</dd><dt><a class="mod" href="backtrace/index.html" title="mod std::backtrace">backtrace</a></dt><dd>Support for capturing a stack backtrace of an OS thread</dd><dt><a class="mod" href="borrow/index.html" title="mod std::borrow">borrow</a></dt><dd>A module for working with borrowed data.</dd><dt><a class="mod" href="boxed/index.html" title="mod std::boxed">boxed</a></dt><dd>The <code>Box<T></code> type for heap allocation.</dd><dt><a class="mod" href="cell/index.html" title="mod std::cell">cell</a></dt><dd>Shareable mutable containers.</dd><dt><a class="mod" href="char/index.html" title="mod std::char">char</a></dt><dd>Utilities for the <code>char</code> primitive type.</dd><dt><a class="mod" href="clone/index.html" title="mod std::clone">clone</a></dt><dd>The <code>Clone</code> trait for types that cannot be ‘implicitly copied’.</dd><dt><a class="mod" href="cmp/index.html" title="mod std::cmp">cmp</a></dt><dd>Utilities for comparing and ordering values.</dd><dt><a class="mod" href="collections/index.html" title="mod std::collections">collections</a></dt><dd>Collection types.</dd><dt><a class="mod" href="convert/index.html" title="mod std::convert">convert</a></dt><dd>Traits for conversions between types.</dd><dt><a class="mod" href="default/index.html" title="mod std::default">default</a></dt><dd>The <code>Default</code> trait for types with a default value.</dd><dt><a class="mod" href="env/index.html" title="mod std::env">env</a></dt><dd>Inspection and manipulation of the process’s environment.</dd><dt><a class="mod" href="error/index.html" title="mod std::error">error</a></dt><dd>Interfaces for working with Errors.</dd><dt><a class="mod" href="f32/index.html" title="mod std::f32">f32</a></dt><dd>Constants for the <code>f32</code> single-precision floating point type.</dd><dt><a class="mod" href="f64/index.html" title="mod std::f64">f64</a></dt><dd>Constants for the <code>f64</code> double-precision floating point type.</dd><dt><a class="mod" href="ffi/index.html" title="mod std::ffi">ffi</a></dt><dd>Utilities related to FFI bindings.</dd><dt><a class="mod" href="fmt/index.html" title="mod std::fmt">fmt</a></dt><dd>Utilities for formatting and printing <code>String</code>s.</dd><dt><a class="mod" href="fs/index.html" title="mod std::fs">fs</a></dt><dd>Filesystem manipulation operations.</dd><dt><a class="mod" href="future/index.html" title="mod std::future">future</a></dt><dd>Asynchronous basic functionality.</dd><dt><a class="mod" href="hash/index.html" title="mod std::hash">hash</a></dt><dd>Generic hashing support.</dd><dt><a class="mod" href="hint/index.html" title="mod std::hint">hint</a></dt><dd>Hints to compiler that affects how code should be emitted or optimized.</dd><dt><a class="mod" href="i8/index.html" title="mod std::i8">i8</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.i8.html" title="primitive i8"><code>i8</code> primitive type</a>.</dd><dt><a class="mod" href="i16/index.html" title="mod std::i16">i16</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.i16.html" title="primitive i16"><code>i16</code> primitive type</a>.</dd><dt><a class="mod" href="i32/index.html" title="mod std::i32">i32</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.i32.html" title="primitive i32"><code>i32</code> primitive type</a>.</dd><dt><a class="mod" href="i64/index.html" title="mod std::i64">i64</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.i64.html" title="primitive i64"><code>i64</code> primitive type</a>.</dd><dt><a class="mod" href="i128/index.html" title="mod std::i128">i128</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.i128.html" title="primitive i128"><code>i128</code> primitive type</a>.</dd><dt><a class="mod" href="io/index.html" title="mod std::io">io</a></dt><dd>Traits, helpers, and type definitions for core I/O functionality.</dd><dt><a class="mod" href="isize/index.html" title="mod std::isize">isize</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.isize.html" title="primitive isize"><code>isize</code> primitive type</a>.</dd><dt><a class="mod" href="iter/index.html" title="mod std::iter">iter</a></dt><dd>Composable external iteration.</dd><dt><a class="mod" href="marker/index.html" title="mod std::marker">marker</a></dt><dd>Primitive traits and types representing basic properties of types.</dd><dt><a class="mod" href="mem/index.html" title="mod std::mem">mem</a></dt><dd>Basic functions for dealing with memory.</dd><dt><a class="mod" href="net/index.html" title="mod std::net">net</a></dt><dd>Networking primitives for TCP/UDP communication.</dd><dt><a class="mod" href="num/index.html" title="mod std::num">num</a></dt><dd>Additional functionality for numerics.</dd><dt><a class="mod" href="ops/index.html" title="mod std::ops">ops</a></dt><dd>Overloadable operators.</dd><dt><a class="mod" href="option/index.html" title="mod std::option">option</a></dt><dd>Optional values.</dd><dt><a class="mod" href="os/index.html" title="mod std::os">os</a></dt><dd>OS-specific functionality.</dd><dt><a class="mod" href="panic/index.html" title="mod std::panic">panic</a></dt><dd>Panic support in the standard library.</dd><dt><a class="mod" href="path/index.html" title="mod std::path">path</a></dt><dd>Cross-platform path manipulation.</dd><dt><a class="mod" href="pin/index.html" title="mod std::pin">pin</a></dt><dd>Types that pin data to a location in memory.</dd><dt><a class="mod" href="prelude/index.html" title="mod std::prelude">prelude</a></dt><dd>The Rust Prelude</dd><dt><a class="mod" href="primitive/index.html" title="mod std::primitive">primitive</a></dt><dd>This module reexports the primitive types to allow usage that is not possibly shadowed by other declared types.</dd><dt><a class="mod" href="process/index.html" title="mod std::process">process</a></dt><dd>A module for working with processes.</dd><dt><a class="mod" href="ptr/index.html" title="mod std::ptr">ptr</a></dt><dd>Manually manage memory through raw pointers.</dd><dt><a class="mod" href="rc/index.html" title="mod std::rc">rc</a></dt><dd>Single-threaded reference-counting pointers. ‘Rc’ stands for ‘Reference Counted’.</dd><dt><a class="mod" href="result/index.html" title="mod std::result">result</a></dt><dd>Error handling with the <code>Result</code> type.</dd><dt><a class="mod" href="slice/index.html" title="mod std::slice">slice</a></dt><dd>Utilities for the slice primitive type.</dd><dt><a class="mod" href="str/index.html" title="mod std::str">str</a></dt><dd>Utilities for the <code>str</code> primitive type.</dd><dt><a class="mod" href="string/index.html" title="mod std::string">string</a></dt><dd>A UTF-8–encoded, growable string.</dd><dt><a class="mod" href="sync/index.html" title="mod std::sync">sync</a></dt><dd>Useful synchronization primitives.</dd><dt><a class="mod" href="task/index.html" title="mod std::task">task</a></dt><dd>Types and Traits for working with asynchronous tasks.</dd><dt><a class="mod" href="thread/index.html" title="mod std::thread">thread</a></dt><dd>Native threads.</dd><dt><a class="mod" href="time/index.html" title="mod std::time">time</a></dt><dd>Temporal quantification.</dd><dt><a class="mod" href="u8/index.html" title="mod std::u8">u8</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.u8.html" title="primitive u8"><code>u8</code> primitive type</a>.</dd><dt><a class="mod" href="u16/index.html" title="mod std::u16">u16</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.u16.html" title="primitive u16"><code>u16</code> primitive type</a>.</dd><dt><a class="mod" href="u32/index.html" title="mod std::u32">u32</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.u32.html" title="primitive u32"><code>u32</code> primitive type</a>.</dd><dt><a class="mod" href="u64/index.html" title="mod std::u64">u64</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.u64.html" title="primitive u64"><code>u64</code> primitive type</a>.</dd><dt><a class="mod" href="u128/index.html" title="mod std::u128">u128</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.u128.html" title="primitive u128"><code>u128</code> primitive type</a>.</dd><dt><a class="mod" href="usize/index.html" title="mod std::usize">usize</a><wbr><span class="stab deprecated" title="">Deprecation planned</span></dt><dd>Redundant constants module for the <a href="primitive.usize.html" title="primitive usize"><code>usize</code> primitive type</a>.</dd><dt><a class="mod" href="vec/index.html" title="mod std::vec">vec</a></dt><dd>A contiguous growable array type with heap-allocated contents, written <code>Vec<T></code>.</dd><dt><a class="mod" href="assert_matches/index.html" title="mod std::assert_matches">assert_<wbr>matches</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Unstable module containing the unstable <code>assert_matches</code> macro.</dd><dt><a class="mod" href="async_iter/index.html" title="mod std::async_iter">async_<wbr>iter</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Composable asynchronous iteration.</dd><dt><a class="mod" href="autodiff/index.html" title="mod std::autodiff">autodiff</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>This module provides support for automatic differentiation.</dd><dt><a class="mod" href="bstr/index.html" title="mod std::bstr">bstr</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>The <code>ByteStr</code> and <code>ByteString</code> types and trait implementations.</dd><dt><a class="mod" href="f16/index.html" title="mod std::f16">f16</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Constants for the <code>f16</code> half-precision floating point type.</dd><dt><a class="mod" href="f128/index.html" title="mod std::f128">f128</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Constants for the <code>f128</code> quadruple-precision floating point type.</dd><dt><a class="mod" href="intrinsics/index.html" title="mod std::intrinsics">intrinsics</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Compiler intrinsics.</dd><dt><a class="mod" href="pat/index.html" title="mod std::pat">pat</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Helper module for exporting the <code>pattern_type</code> macro</dd><dt><a class="mod" href="random/index.html" title="mod std::random">random</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Random value generation.</dd><dt><a class="mod" href="range/index.html" title="mod std::range">range</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Experimental replacement range types</dd><dt><a class="mod" href="simd/index.html" title="mod std::simd">simd</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Portable SIMD module.</dd><dt><a class="mod" href="unsafe_binder/index.html" title="mod std::unsafe_binder">unsafe_<wbr>binder</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Operators used to turn types into unsafe binders and back.</dd></dl><h2 id="macros" class="section-header">Macros<a href="#macros" class="anchor">§</a></h2><dl class="item-table"><dt><a class="macro" href="macro.assert.html" title="macro std::assert">assert</a></dt><dd>Asserts that a boolean expression is <code>true</code> at runtime.</dd><dt><a class="macro" href="macro.assert_eq.html" title="macro std::assert_eq">assert_<wbr>eq</a></dt><dd>Asserts that two expressions are equal to each other (using <a href="cmp/trait.PartialEq.html" title="trait std::cmp::PartialEq"><code>PartialEq</code></a>).</dd><dt><a class="macro" href="macro.assert_ne.html" title="macro std::assert_ne">assert_<wbr>ne</a></dt><dd>Asserts that two expressions are not equal to each other (using <a href="cmp/trait.PartialEq.html" title="trait std::cmp::PartialEq"><code>PartialEq</code></a>).</dd><dt><a class="macro" href="macro.cfg.html" title="macro std::cfg">cfg</a></dt><dd>Evaluates boolean combinations of configuration flags at compile-time.</dd><dt><a class="macro" href="macro.column.html" title="macro std::column">column</a></dt><dd>Expands to the column number at which it was invoked.</dd><dt><a class="macro" href="macro.compile_error.html" title="macro std::compile_error">compile_<wbr>error</a></dt><dd>Causes compilation to fail with the given error message when encountered.</dd><dt><a class="macro" href="macro.concat.html" title="macro std::concat">concat</a></dt><dd>Concatenates literals into a static string slice.</dd><dt><a class="macro" href="macro.dbg.html" title="macro std::dbg">dbg</a></dt><dd>Prints and returns the value of a given expression for quick and dirty debugging.</dd><dt><a class="macro" href="macro.debug_assert.html" title="macro std::debug_assert">debug_<wbr>assert</a></dt><dd>Asserts that a boolean expression is <code>true</code> at runtime.</dd><dt><a class="macro" href="macro.debug_assert_eq.html" title="macro std::debug_assert_eq">debug_<wbr>assert_<wbr>eq</a></dt><dd>Asserts that two expressions are equal to each other.</dd><dt><a class="macro" href="macro.debug_assert_ne.html" title="macro std::debug_assert_ne">debug_<wbr>assert_<wbr>ne</a></dt><dd>Asserts that two expressions are not equal to each other.</dd><dt><a class="macro" href="macro.env.html" title="macro std::env">env</a></dt><dd>Inspects an environment variable at compile time.</dd><dt><a class="macro" href="macro.eprint.html" title="macro std::eprint">eprint</a></dt><dd>Prints to the standard error.</dd><dt><a class="macro" href="macro.eprintln.html" title="macro std::eprintln">eprintln</a></dt><dd>Prints to the standard error, with a newline.</dd><dt><a class="macro" href="macro.file.html" title="macro std::file">file</a></dt><dd>Expands to the file name in which it was invoked.</dd><dt><a class="macro" href="macro.format.html" title="macro std::format">format</a></dt><dd>Creates a <code>String</code> using interpolation of runtime expressions.</dd><dt><a class="macro" href="macro.format_args.html" title="macro std::format_args">format_<wbr>args</a></dt><dd>Constructs parameters for the other string-formatting macros.</dd><dt><a class="macro" href="macro.include.html" title="macro std::include">include</a></dt><dd>Parses a file as an expression or an item according to the context.</dd><dt><a class="macro" href="macro.include_bytes.html" title="macro std::include_bytes">include_<wbr>bytes</a></dt><dd>Includes a file as a reference to a byte array.</dd><dt><a class="macro" href="macro.include_str.html" title="macro std::include_str">include_<wbr>str</a></dt><dd>Includes a UTF-8 encoded file as a string.</dd><dt><a class="macro" href="macro.is_x86_feature_detected.html" title="macro std::is_x86_feature_detected">is_<wbr>x86_<wbr>feature_<wbr>detected</a></dt><dd>A macro to test at <em>runtime</em> whether a CPU feature is available on x86/x86-64 platforms.</dd><dt><a class="macro" href="macro.line.html" title="macro std::line">line</a></dt><dd>Expands to the line number on which it was invoked.</dd><dt><a class="macro" href="macro.matches.html" title="macro std::matches">matches</a></dt><dd>Returns whether the given expression matches the provided pattern.</dd><dt><a class="macro" href="macro.module_path.html" title="macro std::module_path">module_<wbr>path</a></dt><dd>Expands to a string that represents the current module path.</dd><dt><a class="macro" href="macro.option_env.html" title="macro std::option_env">option_<wbr>env</a></dt><dd>Optionally inspects an environment variable at compile time.</dd><dt><a class="macro" href="macro.panic.html" title="macro std::panic">panic</a></dt><dd>Panics the current thread.</dd><dt><a class="macro" href="macro.print.html" title="macro std::print">print</a></dt><dd>Prints to the standard output.</dd><dt><a class="macro" href="macro.println.html" title="macro std::println">println</a></dt><dd>Prints to the standard output, with a newline.</dd><dt><a class="macro" href="macro.stringify.html" title="macro std::stringify">stringify</a></dt><dd>Stringifies its arguments.</dd><dt><a class="macro" href="macro.thread_local.html" title="macro std::thread_local">thread_<wbr>local</a></dt><dd>Declare a new thread local storage key of type <a href="thread/struct.LocalKey.html" title="struct std::thread::LocalKey"><code>std::thread::LocalKey</code></a>.</dd><dt><a class="macro" href="macro.todo.html" title="macro std::todo">todo</a></dt><dd>Indicates unfinished code.</dd><dt><a class="macro" href="macro.try.html" title="macro std::try">try</a><wbr><span class="stab deprecated" title="">Deprecated</span></dt><dd>Unwraps a result or propagates its error.</dd><dt><a class="macro" href="macro.unimplemented.html" title="macro std::unimplemented">unimplemented</a></dt><dd>Indicates unimplemented code by panicking with a message of “not implemented”.</dd><dt><a class="macro" href="macro.unreachable.html" title="macro std::unreachable">unreachable</a></dt><dd>Indicates unreachable code.</dd><dt><a class="macro" href="macro.vec.html" title="macro std::vec">vec</a></dt><dd>Creates a <a href="vec/struct.Vec.html" title="struct std::vec::Vec"><code>Vec</code></a> containing the arguments.</dd><dt><a class="macro" href="macro.write.html" title="macro std::write">write</a></dt><dd>Writes formatted data into a buffer.</dd><dt><a class="macro" href="macro.writeln.html" title="macro std::writeln">writeln</a></dt><dd>Writes formatted data into a buffer, with a newline appended.</dd><dt><a class="macro" href="macro.cfg_match.html" title="macro std::cfg_match">cfg_<wbr>match</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>A macro for defining <code>#[cfg]</code> match-like statements.</dd><dt><a class="macro" href="macro.concat_bytes.html" title="macro std::concat_bytes">concat_<wbr>bytes</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Concatenates literals into a byte slice.</dd><dt><a class="macro" href="macro.concat_idents.html" title="macro std::concat_idents">concat_<wbr>idents</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Concatenates identifiers into one identifier.</dd><dt><a class="macro" href="macro.const_format_args.html" title="macro std::const_format_args">const_<wbr>format_<wbr>args</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Same as <a href="macro.format_args.html" title="macro std::format_args"><code>format_args</code></a>, but can be used in some const contexts.</dd><dt><a class="macro" href="macro.format_args_nl.html" title="macro std::format_args_nl">format_<wbr>args_<wbr>nl</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Same as <a href="macro.format_args.html" title="macro std::format_args"><code>format_args</code></a>, but adds a newline in the end.</dd><dt><a class="macro" href="macro.log_syntax.html" title="macro std::log_syntax">log_<wbr>syntax</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Prints passed tokens into the standard output.</dd><dt><a class="macro" href="macro.trace_macros.html" title="macro std::trace_macros">trace_<wbr>macros</a><wbr><span class="stab unstable" title="">Experimental</span></dt><dd>Enables or disables tracing functionality used for debugging other macros.</dd></dl><h2 id="keywords" class="section-header">Keywords<a href="#keywords" class="anchor">§</a></h2><dl class="item-table"><dt><a class="keyword" href="keyword.SelfTy.html" title="keyword std::SelfTy">SelfTy</a></dt><dd>The implementing type within a <a href="keyword.trait.html"><code>trait</code></a> or <a href="keyword.impl.html"><code>impl</code></a> block, or the current type within a type definition.</dd><dt><a class="keyword" href="keyword.as.html" title="keyword std::as">as</a></dt><dd>Cast between types, or rename an import.</dd><dt><a class="keyword" href="keyword.async.html" title="keyword std::async">async</a></dt><dd>Returns a <a href="future/trait.Future.html" title="trait std::future::Future"><code>Future</code></a> instead of blocking the current thread.</dd><dt><a class="keyword" href="keyword.await.html" title="keyword std::await">await</a></dt><dd>Suspend execution until the result of a <a href="future/trait.Future.html" title="trait std::future::Future"><code>Future</code></a> is ready.</dd><dt><a class="keyword" href="keyword.break.html" title="keyword std::break">break</a></dt><dd>Exit early from a loop or labelled block.</dd><dt><a class="keyword" href="keyword.const.html" title="keyword std::const">const</a></dt><dd>Compile-time constants, compile-time evaluable functions, and raw pointers.</dd><dt><a class="keyword" href="keyword.continue.html" title="keyword std::continue">continue</a></dt><dd>Skip to the next iteration of a loop.</dd><dt><a class="keyword" href="keyword.crate.html" title="keyword std::crate">crate</a></dt><dd>A Rust binary or library.</dd><dt><a class="keyword" href="keyword.dyn.html" title="keyword std::dyn">dyn</a></dt><dd><code>dyn</code> is a prefix of a <a href="../book/ch17-02-trait-objects.html">trait object</a>’s type.</dd><dt><a class="keyword" href="keyword.else.html" title="keyword std::else">else</a></dt><dd>What expression to evaluate when an <a href="keyword.if.html"><code>if</code></a> condition evaluates to <a href="keyword.false.html"><code>false</code></a>.</dd><dt><a class="keyword" href="keyword.enum.html" title="keyword std::enum">enum</a></dt><dd>A type that can be any one of several variants.</dd><dt><a class="keyword" href="keyword.extern.html" title="keyword std::extern">extern</a></dt><dd>Link to or import external code.</dd><dt><a class="keyword" href="keyword.false.html" title="keyword std::false">false</a></dt><dd>A value of type <a href="primitive.bool.html" title="primitive bool"><code>bool</code></a> representing logical <strong>false</strong>.</dd><dt><a class="keyword" href="keyword.fn.html" title="keyword std::fn">fn</a></dt><dd>A function or function pointer.</dd><dt><a class="keyword" href="keyword.for.html" title="keyword std::for">for</a></dt><dd>Iteration with <a href="keyword.in.html"><code>in</code></a>, trait implementation with <a href="keyword.impl.html"><code>impl</code></a>, or <a href="../reference/trait-bounds.html#higher-ranked-trait-bounds">higher-ranked trait bounds</a> (<code>for<'a></code>).</dd><dt><a class="keyword" href="keyword.if.html" title="keyword std::if">if</a></dt><dd>Evaluate a block if a condition holds.</dd><dt><a class="keyword" href="keyword.impl.html" title="keyword std::impl">impl</a></dt><dd>Implementations of functionality for a type, or a type implementing some functionality.</dd><dt><a class="keyword" href="keyword.in.html" title="keyword std::in">in</a></dt><dd>Iterate over a series of values with <a href="keyword.for.html"><code>for</code></a>.</dd><dt><a class="keyword" href="keyword.let.html" title="keyword std::let">let</a></dt><dd>Bind a value to a variable.</dd><dt><a class="keyword" href="keyword.loop.html" title="keyword std::loop">loop</a></dt><dd>Loop indefinitely.</dd><dt><a class="keyword" href="keyword.match.html" title="keyword std::match">match</a></dt><dd>Control flow based on pattern matching.</dd><dt><a class="keyword" href="keyword.mod.html" title="keyword std::mod">mod</a></dt><dd>Organize code into <a href="../reference/items/modules.html">modules</a>.</dd><dt><a class="keyword" href="keyword.move.html" title="keyword std::move">move</a></dt><dd>Capture a <a href="../book/ch13-01-closures.html">closure</a>’s environment by value.</dd><dt><a class="keyword" href="keyword.mut.html" title="keyword std::mut">mut</a></dt><dd>A mutable variable, reference, or pointer.</dd><dt><a class="keyword" href="keyword.pub.html" title="keyword std::pub">pub</a></dt><dd>Make an item visible to others.</dd><dt><a class="keyword" href="keyword.ref.html" title="keyword std::ref">ref</a></dt><dd>Bind by reference during pattern matching.</dd><dt><a class="keyword" href="keyword.return.html" title="keyword std::return">return</a></dt><dd>Returns a value from a function.</dd><dt><a class="keyword" href="keyword.self.html" title="keyword std::self">self</a></dt><dd>The receiver of a method, or the current module.</dd><dt><a class="keyword" href="keyword.static.html" title="keyword std::static">static</a></dt><dd>A static item is a value which is valid for the entire duration of your program (a <code>'static</code> lifetime).</dd><dt><a class="keyword" href="keyword.struct.html" title="keyword std::struct">struct</a></dt><dd>A type that is composed of other types.</dd><dt><a class="keyword" href="keyword.super.html" title="keyword std::super">super</a></dt><dd>The parent of the current <a href="../reference/items/modules.html">module</a>.</dd><dt><a class="keyword" href="keyword.trait.html" title="keyword std::trait">trait</a></dt><dd>A common interface for a group of types.</dd><dt><a class="keyword" href="keyword.true.html" title="keyword std::true">true</a></dt><dd>A value of type <a href="primitive.bool.html" title="primitive bool"><code>bool</code></a> representing logical <strong>true</strong>.</dd><dt><a class="keyword" href="keyword.type.html" title="keyword std::type">type</a></dt><dd>Define an <a href="../reference/items/type-aliases.html">alias</a> for an existing type.</dd><dt><a class="keyword" href="keyword.union.html" title="keyword std::union">union</a></dt><dd>The <a href="../reference/items/unions.html">Rust equivalent of a C-style union</a>.</dd><dt><a class="keyword" href="keyword.unsafe.html" title="keyword std::unsafe">unsafe</a></dt><dd>Code or interfaces whose <a href="../book/ch19-01-unsafe-rust.html">memory safety</a> cannot be verified by the type system.</dd><dt><a class="keyword" href="keyword.use.html" title="keyword std::use">use</a></dt><dd>Import or rename items from other crates or modules, or specify precise capturing with <code>use<..></code>.</dd><dt><a class="keyword" href="keyword.where.html" title="keyword std::where">where</a></dt><dd>Add constraints that must be upheld to use an item.</dd><dt><a class="keyword" href="keyword.while.html" title="keyword std::while">while</a></dt><dd>Loop while a condition is upheld.</dd></dl><script type="text/json" id="notable-traits-data">{"EscapeDefault":"<h3>Notable traits for <code><a class=\"struct\" href=\"ascii/struct.EscapeDefault.html\" title=\"struct std::ascii::EscapeDefault\">EscapeDefault</a></code></h3><pre><code><div class=\"where\">impl <a class=\"trait\" href=\"iter/trait.Iterator.html\" title=\"trait std::iter::Iterator\">Iterator</a> for <a class=\"struct\" href=\"ascii/struct.EscapeDefault.html\" title=\"struct std::ascii::EscapeDefault\">EscapeDefault</a></div><div class=\"where\"> type <a href=\"iter/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"primitive.u8.html\">u8</a>;</div>","IntoIter<T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"result/struct.IntoIter.html\" title=\"struct std::result::IntoIter\">IntoIter</a><T></code></h3><pre><code><div class=\"where\">impl<T> <a class=\"trait\" href=\"iter/trait.Iterator.html\" title=\"trait std::iter::Iterator\">Iterator</a> for <a class=\"struct\" href=\"result/struct.IntoIter.html\" title=\"struct std::result::IntoIter\">IntoIter</a><T></div><div class=\"where\"> type <a href=\"iter/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = T;</div>","Iter<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"result/struct.Iter.html\" title=\"struct std::result::Iter\">Iter</a><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <a class=\"trait\" href=\"iter/trait.Iterator.html\" title=\"trait std::iter::Iterator\">Iterator</a> for <a class=\"struct\" href=\"result/struct.Iter.html\" title=\"struct std::result::Iter\">Iter</a><'a, T></div><div class=\"where\"> type <a href=\"iter/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"primitive.reference.html\">&'a T</a>;</div>","IterMut<'_, T>":"<h3>Notable traits for <code><a class=\"struct\" href=\"result/struct.IterMut.html\" title=\"struct std::result::IterMut\">IterMut</a><'a, T></code></h3><pre><code><div class=\"where\">impl<'a, T> <a class=\"trait\" href=\"iter/trait.Iterator.html\" title=\"trait std::iter::Iterator\">Iterator</a> for <a class=\"struct\" href=\"result/struct.IterMut.html\" title=\"struct std::result::IterMut\">IterMut</a><'a, T></div><div class=\"where\"> type <a href=\"iter/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"primitive\" href=\"primitive.reference.html\">&'a mut T</a>;</div>"}</script></section></div></main></body></html>