183 lines
25 KiB
HTML
183 lines
25 KiB
HTML
<!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="API documentation for the Rust `result` mod in crate `nom`."><meta name="keywords" content="rust, rustlang, rust-lang, result"><title>nom::lib::std::result - Rust</title><link rel="stylesheet" type="text/css" href="../../../../normalize.css"><link rel="stylesheet" type="text/css" href="../../../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../../../../dark.css"><link rel="stylesheet" type="text/css" href="../../../../light.css" id="themeStyle"><script src="../../../../storage.js"></script><noscript><link rel="stylesheet" href="../../../../noscript.css"></noscript><link rel="shortcut icon" href="../../../../favicon.ico"><style type="text/css">#crate-search{background-image:url("../../../../down-arrow.svg");}</style></head><body class="rustdoc mod"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../../../../nom/index.html'><div class='logo-container'><img src='../../../../rust-logo.png' alt='logo'></div></a><p class='location'>Module result</p><div class="sidebar-elems"><div class="block items"><ul><li><a href="#structs">Structs</a></li><li><a href="#enums">Enums</a></li></ul></div><p class='location'><a href='../../../index.html'>nom</a>::<wbr><a href='../../index.html'>lib</a>::<wbr><a href='../index.html'>std</a></p><script>window.sidebarCurrent = {name: 'result', ty: 'mod', relpath: '../'};</script><script defer src="../sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../../../../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../../../../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../../../../settings.html"><img src="../../../../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/lib.rs.html#236' title='goto source code'>[src]</a></span><span class='in-band'>Module <a href='../../../index.html'>nom</a>::<wbr><a href='../../index.html'>lib</a>::<wbr><a href='../index.html'>std</a>::<wbr><a class="mod" href=''>result</a></span></h1><div class='docblock'><p>Error handling with the <code>Result</code> type.</p>
|
||
<p><a href="enum.Result.html"><code>Result<T, E></code></a> is the type used for returning and propagating
|
||
errors. It is an enum with the variants, <a href="enum.Result.html#variant.Ok"><code>Ok(T)</code></a>, representing
|
||
success and containing a value, and <a href="enum.Result.html#variant.Err"><code>Err(E)</code></a>, representing error
|
||
and containing an error value.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">enum</span> <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">></span> {
|
||
<span class="prelude-val">Ok</span>(<span class="ident">T</span>),
|
||
<span class="prelude-val">Err</span>(<span class="ident">E</span>),
|
||
}</pre></div>
|
||
<p>Functions return <a href="enum.Result.html"><code>Result</code></a> whenever errors are expected and
|
||
recoverable. In the <code>std</code> crate, <a href="enum.Result.html"><code>Result</code></a> is most prominently used
|
||
for <a href="../../std/io/index.html">I/O</a>.</p>
|
||
<p>A simple function returning <a href="enum.Result.html"><code>Result</code></a> might be
|
||
defined and used like so:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
|
||
<span class="kw">enum</span> <span class="ident">Version</span> { <span class="ident">Version1</span>, <span class="ident">Version2</span> }
|
||
|
||
<span class="kw">fn</span> <span class="ident">parse_version</span>(<span class="ident">header</span>: <span class="kw-2">&</span>[<span class="ident">u8</span>]) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">Version</span>, <span class="kw-2">&</span><span class="lifetime">'static</span> <span class="ident">str</span><span class="op">></span> {
|
||
<span class="kw">match</span> <span class="ident">header</span>.<span class="ident">get</span>(<span class="number">0</span>) {
|
||
<span class="prelude-val">None</span> <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="string">"invalid header length"</span>),
|
||
<span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">1</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Ok</span>(<span class="ident">Version</span>::<span class="ident">Version1</span>),
|
||
<span class="prelude-val">Some</span>(<span class="kw-2">&</span><span class="number">2</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Ok</span>(<span class="ident">Version</span>::<span class="ident">Version2</span>),
|
||
<span class="prelude-val">Some</span>(<span class="kw">_</span>) <span class="op">=</span><span class="op">></span> <span class="prelude-val">Err</span>(<span class="string">"invalid version"</span>),
|
||
}
|
||
}
|
||
|
||
<span class="kw">let</span> <span class="ident">version</span> <span class="op">=</span> <span class="ident">parse_version</span>(<span class="kw-2">&</span>[<span class="number">1</span>, <span class="number">2</span>, <span class="number">3</span>, <span class="number">4</span>]);
|
||
<span class="kw">match</span> <span class="ident">version</span> {
|
||
<span class="prelude-val">Ok</span>(<span class="ident">v</span>) <span class="op">=</span><span class="op">></span> <span class="macro">println</span><span class="macro">!</span>(<span class="string">"working with version: {:?}"</span>, <span class="ident">v</span>),
|
||
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">></span> <span class="macro">println</span><span class="macro">!</span>(<span class="string">"error parsing header: {:?}"</span>, <span class="ident">e</span>),
|
||
}</pre></div>
|
||
<p>Pattern matching on <a href="enum.Result.html"><code>Result</code></a>s is clear and straightforward for
|
||
simple cases, but <a href="enum.Result.html"><code>Result</code></a> comes with some convenience methods
|
||
that make working with it more succinct.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">let</span> <span class="ident">good_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="prelude-val">Ok</span>(<span class="number">10</span>);
|
||
<span class="kw">let</span> <span class="ident">bad_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="prelude-val">Err</span>(<span class="number">10</span>);
|
||
|
||
<span class="comment">// The `is_ok` and `is_err` methods do what they say.</span>
|
||
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">good_result</span>.<span class="ident">is_ok</span>() <span class="kw-2">&</span><span class="op">&</span> <span class="op">!</span><span class="ident">good_result</span>.<span class="ident">is_err</span>());
|
||
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">bad_result</span>.<span class="ident">is_err</span>() <span class="kw-2">&</span><span class="op">&</span> <span class="op">!</span><span class="ident">bad_result</span>.<span class="ident">is_ok</span>());
|
||
|
||
<span class="comment">// `map` consumes the `Result` and produces another.</span>
|
||
<span class="kw">let</span> <span class="ident">good_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">good_result</span>.<span class="ident">map</span>(<span class="op">|</span><span class="ident">i</span><span class="op">|</span> <span class="ident">i</span> <span class="op">+</span> <span class="number">1</span>);
|
||
<span class="kw">let</span> <span class="ident">bad_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">bad_result</span>.<span class="ident">map</span>(<span class="op">|</span><span class="ident">i</span><span class="op">|</span> <span class="ident">i</span> <span class="op">-</span> <span class="number">1</span>);
|
||
|
||
<span class="comment">// Use `and_then` to continue the computation.</span>
|
||
<span class="kw">let</span> <span class="ident">good_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">bool</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">good_result</span>.<span class="ident">and_then</span>(<span class="op">|</span><span class="ident">i</span><span class="op">|</span> <span class="prelude-val">Ok</span>(<span class="ident">i</span> <span class="op">=</span><span class="op">=</span> <span class="number">11</span>));
|
||
|
||
<span class="comment">// Use `or_else` to handle the error.</span>
|
||
<span class="kw">let</span> <span class="ident">bad_result</span>: <span class="prelude-ty">Result</span><span class="op"><</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">></span> <span class="op">=</span> <span class="ident">bad_result</span>.<span class="ident">or_else</span>(<span class="op">|</span><span class="ident">i</span><span class="op">|</span> <span class="prelude-val">Ok</span>(<span class="ident">i</span> <span class="op">+</span> <span class="number">20</span>));
|
||
|
||
<span class="comment">// Consume the result and return the contents with `unwrap`.</span>
|
||
<span class="kw">let</span> <span class="ident">final_awesome_result</span> <span class="op">=</span> <span class="ident">good_result</span>.<span class="ident">unwrap</span>();</pre></div>
|
||
<h1 id="results-must-be-used" class="section-header"><a href="#results-must-be-used">Results must be used</a></h1>
|
||
<p>A common problem with using return values to indicate errors is
|
||
that it is easy to ignore the return value, thus failing to handle
|
||
the error. <a href="enum.Result.html"><code>Result</code></a> is annotated with the <code>#[must_use]</code> attribute,
|
||
which will cause the compiler to issue a warning when a Result
|
||
value is ignored. This makes <a href="enum.Result.html"><code>Result</code></a> especially useful with
|
||
functions that may encounter errors but don't otherwise return a
|
||
useful value.</p>
|
||
<p>Consider the <a href="../../std/io/trait.Write.html#method.write_all"><code>write_all</code></a> method defined for I/O types
|
||
by the <a href="../../std/io/trait.Write.html"><code>Write</code></a> trait:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
|
||
|
||
<span class="kw">trait</span> <span class="ident">Write</span> {
|
||
<span class="kw">fn</span> <span class="ident">write_all</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">bytes</span>: <span class="kw-2">&</span>[<span class="ident">u8</span>]) <span class="op">-</span><span class="op">></span> <span class="prelude-ty">Result</span><span class="op"><</span>(), <span class="ident">io</span>::<span class="ident">Error</span><span class="op">></span>;
|
||
}</pre></div>
|
||
<p><em>Note: The actual definition of <a href="../../std/io/trait.Write.html"><code>Write</code></a> uses <a href="../../std/io/type.Result.html"><code>io::Result</code></a>, which
|
||
is just a synonym for <a href="enum.Result.html"><code>Result</code></a><code><T, </code><a href="../../std/io/struct.Error.html"><code>io::Error</code></a><code>></code>.</em></p>
|
||
<p>This method doesn't produce a value, but the write may
|
||
fail. It's crucial to handle the error case, and <em>not</em> write
|
||
something like this:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fs</span>::<span class="ident">File</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">prelude</span>::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">file</span> <span class="op">=</span> <span class="ident">File</span>::<span class="ident">create</span>(<span class="string">"valuable_data.txt"</span>).<span class="ident">unwrap</span>();
|
||
<span class="comment">// If `write_all` errors, then we'll never know, because the return</span>
|
||
<span class="comment">// value is ignored.</span>
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b"important message"</span>);</pre></div>
|
||
<p>If you <em>do</em> write that in Rust, the compiler will give you a
|
||
warning (by default, controlled by the <code>unused_must_use</code> lint).</p>
|
||
<p>You might instead, if you don't want to handle the error, simply
|
||
assert success with <a href="enum.Result.html#method.expect"><code>expect</code></a>. This will panic if the
|
||
write fails, providing a marginally useful message indicating why:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fs</span>::<span class="ident">File</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">prelude</span>::<span class="kw-2">*</span>;
|
||
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">file</span> <span class="op">=</span> <span class="ident">File</span>::<span class="ident">create</span>(<span class="string">"valuable_data.txt"</span>).<span class="ident">unwrap</span>();
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b"important message"</span>).<span class="ident">expect</span>(<span class="string">"failed to write message"</span>);</pre></div>
|
||
<p>You might also simply assert success:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b"important message"</span>).<span class="ident">is_ok</span>());</pre></div>
|
||
<p>Or propagate the error up the call stack with <a href="../../std/macro.try.html"><code>?</code></a>:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">fn</span> <span class="ident">write_message</span>() <span class="op">-</span><span class="op">></span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op"><</span>()<span class="op">></span> {
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">file</span> <span class="op">=</span> <span class="ident">File</span>::<span class="ident">create</span>(<span class="string">"valuable_data.txt"</span>)<span class="question-mark">?</span>;
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b"important message"</span>)<span class="question-mark">?</span>;
|
||
<span class="prelude-val">Ok</span>(())
|
||
}</pre></div>
|
||
<h1 id="the-question-mark-operator-" class="section-header"><a href="#the-question-mark-operator-">The question mark operator, <code>?</code></a></h1>
|
||
<p>When writing code that calls many functions that return the
|
||
<a href="enum.Result.html"><code>Result</code></a> type, the error handling can be tedious. The question mark
|
||
operator, <a href="../../std/macro.try.html"><code>?</code></a>, hides some of the boilerplate of propagating errors
|
||
up the call stack.</p>
|
||
<p>It replaces this:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fs</span>::<span class="ident">File</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">prelude</span>::<span class="kw-2">*</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
|
||
|
||
<span class="kw">struct</span> <span class="ident">Info</span> {
|
||
<span class="ident">name</span>: <span class="ident">String</span>,
|
||
<span class="ident">age</span>: <span class="ident">i32</span>,
|
||
<span class="ident">rating</span>: <span class="ident">i32</span>,
|
||
}
|
||
|
||
<span class="kw">fn</span> <span class="ident">write_info</span>(<span class="ident">info</span>: <span class="kw-2">&</span><span class="ident">Info</span>) <span class="op">-</span><span class="op">></span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op"><</span>()<span class="op">></span> {
|
||
<span class="comment">// Early return on error</span>
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">file</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">File</span>::<span class="ident">create</span>(<span class="string">"my_best_friends.txt"</span>) {
|
||
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">></span> <span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>),
|
||
<span class="prelude-val">Ok</span>(<span class="ident">f</span>) <span class="op">=</span><span class="op">></span> <span class="ident">f</span>,
|
||
};
|
||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span> <span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"name: {}\n"</span>, <span class="ident">info</span>.<span class="ident">name</span>).<span class="ident">as_bytes</span>()) {
|
||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>)
|
||
}
|
||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span> <span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"age: {}\n"</span>, <span class="ident">info</span>.<span class="ident">age</span>).<span class="ident">as_bytes</span>()) {
|
||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>)
|
||
}
|
||
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span> <span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"rating: {}\n"</span>, <span class="ident">info</span>.<span class="ident">rating</span>).<span class="ident">as_bytes</span>()) {
|
||
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">e</span>)
|
||
}
|
||
<span class="prelude-val">Ok</span>(())
|
||
}</pre></div>
|
||
<p>With this:</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fs</span>::<span class="ident">File</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">prelude</span>::<span class="kw-2">*</span>;
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>;
|
||
|
||
<span class="kw">struct</span> <span class="ident">Info</span> {
|
||
<span class="ident">name</span>: <span class="ident">String</span>,
|
||
<span class="ident">age</span>: <span class="ident">i32</span>,
|
||
<span class="ident">rating</span>: <span class="ident">i32</span>,
|
||
}
|
||
|
||
<span class="kw">fn</span> <span class="ident">write_info</span>(<span class="ident">info</span>: <span class="kw-2">&</span><span class="ident">Info</span>) <span class="op">-</span><span class="op">></span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op"><</span>()<span class="op">></span> {
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">file</span> <span class="op">=</span> <span class="ident">File</span>::<span class="ident">create</span>(<span class="string">"my_best_friends.txt"</span>)<span class="question-mark">?</span>;
|
||
<span class="comment">// Early return on error</span>
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"name: {}\n"</span>, <span class="ident">info</span>.<span class="ident">name</span>).<span class="ident">as_bytes</span>())<span class="question-mark">?</span>;
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"age: {}\n"</span>, <span class="ident">info</span>.<span class="ident">age</span>).<span class="ident">as_bytes</span>())<span class="question-mark">?</span>;
|
||
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="macro">format</span><span class="macro">!</span>(<span class="string">"rating: {}\n"</span>, <span class="ident">info</span>.<span class="ident">rating</span>).<span class="ident">as_bytes</span>())<span class="question-mark">?</span>;
|
||
<span class="prelude-val">Ok</span>(())
|
||
}</pre></div>
|
||
<p><em>It's much nicer!</em></p>
|
||
<p>Ending the expression with <a href="../../std/macro.try.html"><code>?</code></a> will result in the unwrapped
|
||
success (<a href="enum.Result.html#variant.Ok"><code>Ok</code></a>) value, unless the result is <a href="enum.Result.html#variant.Err"><code>Err</code></a>, in which case
|
||
<a href="enum.Result.html#variant.Err"><code>Err</code></a> is returned early from the enclosing function.</p>
|
||
<p><a href="../../std/macro.try.html"><code>?</code></a> can only be used in functions that return <a href="enum.Result.html"><code>Result</code></a> because of the
|
||
early return of <a href="enum.Result.html#variant.Err"><code>Err</code></a> that it provides.</p>
|
||
</div><h2 id='structs' class='section-header'><a href="#structs">Structs</a></h2>
|
||
<table><tr class='module-item'><td><a class="struct" href="struct.IntoIter.html" title='nom::lib::std::result::IntoIter struct'>IntoIter</a></td><td class='docblock-short'><p>An iterator over the value in a <a href="enum.Result.html#variant.Ok"><code>Ok</code></a> variant of a <a href="enum.Result.html"><code>Result</code></a>.</p>
|
||
</td></tr><tr class='module-item'><td><a class="struct" href="struct.Iter.html" title='nom::lib::std::result::Iter struct'>Iter</a></td><td class='docblock-short'><p>An iterator over a reference to the <a href="enum.Result.html#variant.Ok"><code>Ok</code></a> variant of a <a href="enum.Result.html"><code>Result</code></a>.</p>
|
||
</td></tr><tr class='module-item'><td><a class="struct" href="struct.IterMut.html" title='nom::lib::std::result::IterMut struct'>IterMut</a></td><td class='docblock-short'><p>An iterator over a mutable reference to the <a href="enum.Result.html#variant.Ok"><code>Ok</code></a> variant of a <a href="enum.Result.html"><code>Result</code></a>.</p>
|
||
</td></tr></table><h2 id='enums' class='section-header'><a href="#enums">Enums</a></h2>
|
||
<table><tr class='module-item'><td><a class="enum" href="enum.Result.html" title='nom::lib::std::result::Result enum'>Result</a></td><td class='docblock-short'><p><code>Result</code> is a type that represents either success (<a href="enum.Result.html#variant.Ok"><code>Ok</code></a>) or failure (<a href="enum.Result.html#variant.Err"><code>Err</code></a>).</p>
|
||
</td></tr></table></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../../../../";window.currentCrate = "nom";</script><script src="../../../../aliases.js"></script><script src="../../../../main.js"></script><script defer src="../../../../search-index.js"></script></body></html> |