Files
mercator_service/nom/lib/std/result/index.html

183 lines
25 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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">&#9776;</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'>&#x2212;</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&lt;T, E&gt;</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">&lt;</span><span class="ident">T</span>, <span class="ident">E</span><span class="op">&gt;</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">&amp;</span>[<span class="ident">u8</span>]) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Version</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span><span class="op">&gt;</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">&gt;</span> <span class="prelude-val">Err</span>(<span class="string">&quot;invalid header length&quot;</span>),
<span class="prelude-val">Some</span>(<span class="kw-2">&amp;</span><span class="number">1</span>) <span class="op">=</span><span class="op">&gt;</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">&amp;</span><span class="number">2</span>) <span class="op">=</span><span class="op">&gt;</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">&gt;</span> <span class="prelude-val">Err</span>(<span class="string">&quot;invalid version&quot;</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">&amp;</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">&gt;</span> <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;working with version: {:?}&quot;</span>, <span class="ident">v</span>),
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">&gt;</span> <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;error parsing header: {:?}&quot;</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">&lt;</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">&gt;</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">&lt;</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">&gt;</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">&amp;</span><span class="op">&amp;</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">&amp;</span><span class="op">&amp;</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">&lt;</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">&gt;</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">&lt;</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">&gt;</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">&lt;</span><span class="ident">bool</span>, <span class="ident">i32</span><span class="op">&gt;</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">&lt;</span><span class="ident">i32</span>, <span class="ident">i32</span><span class="op">&gt;</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">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">bytes</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>]) <span class="op">-</span><span class="op">&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">io</span>::<span class="ident">Error</span><span class="op">&gt;</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>&lt;T, </code><a href="../../std/io/struct.Error.html"><code>io::Error</code></a><code>&gt;</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">&quot;valuable_data.txt&quot;</span>).<span class="ident">unwrap</span>();
<span class="comment">// If `write_all` errors, then we&#39;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&quot;important message&quot;</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">&quot;valuable_data.txt&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b&quot;important message&quot;</span>).<span class="ident">expect</span>(<span class="string">&quot;failed to write message&quot;</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&quot;important message&quot;</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">&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</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">&quot;valuable_data.txt&quot;</span>)<span class="question-mark">?</span>;
<span class="ident">file</span>.<span class="ident">write_all</span>(<span class="string">b&quot;important message&quot;</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">&amp;</span><span class="ident">Info</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</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">&quot;my_best_friends.txt&quot;</span>) {
<span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=</span><span class="op">&gt;</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">&gt;</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">&quot;name: {}\n&quot;</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">&quot;age: {}\n&quot;</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">&quot;rating: {}\n&quot;</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">&amp;</span><span class="ident">Info</span>) <span class="op">-</span><span class="op">&gt;</span> <span class="ident">io</span>::<span class="prelude-ty">Result</span><span class="op">&lt;</span>()<span class="op">&gt;</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">&quot;my_best_friends.txt&quot;</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">&quot;name: {}\n&quot;</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">&quot;age: {}\n&quot;</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">&quot;rating: {}\n&quot;</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>