This repository has been archived on 2022-04-04. You can view files and clone it, but cannot push or open issues or pull requests.
ludum-dare-50/rustdoc/serde/de/trait.Error.html

78 lines
19 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="The `Error` trait allows `Deserialize` implementations to create descriptive error messages belonging to the `Deserializer` against which they are currently running."><meta name="keywords" content="rust, rustlang, rust-lang, Error"><title>Error in serde::de - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><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="../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script src="../../crates.js"></script><script defer src="../../main.js"></script>
<noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc trait"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a class="sidebar-logo" href="../../serde/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.png" alt="logo"></div>
</a><h2 class="location">Trait Error</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#required-methods">Required Methods</a></h3><div class="sidebar-links"><a href="#tymethod.custom">custom</a></div><h3 class="sidebar-title"><a href="#provided-methods">Provided Methods</a></h3><div class="sidebar-links"><a href="#method.duplicate_field">duplicate_field</a><a href="#method.invalid_length">invalid_length</a><a href="#method.invalid_type">invalid_type</a><a href="#method.invalid_value">invalid_value</a><a href="#method.missing_field">missing_field</a><a href="#method.unknown_field">unknown_field</a><a href="#method.unknown_variant">unknown_variant</a></div><h3 class="sidebar-title"><a href="#implementors">Implementors</a></h3></div><h2 class="location">Other items in<br><a href="../index.html">serde</a>::<wbr><a href="index.html">de</a></h2><div id="sidebar-vars" data-name="Error" data-ty="trait" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../serde/index.html"><img class="rust-logo" src="../../rust-logo.png" alt="logo"></a><nav class="sub"><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../../brush.svg"></button><div id="theme-choices" role="menu"></div></div><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" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><h1 class="fqn"><span class="in-band">Trait <a href="../index.html">serde</a>::<wbr><a href="index.html">de</a>::<wbr><a class="trait" href="#">Error</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span><span class="out-of-band"><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="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust trait"><code>pub trait Error: <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> + <a class="trait" href="https://doc.rust-lang.org/1.59.0/std/error/trait.Error.html" title="trait std::error::Error">StdError</a> {
fn <a href="#tymethod.custom" class="fnname">custom</a>&lt;T&gt;(msg: T) -&gt; Self<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a></span>;
fn <a href="#method.invalid_type" class="fnname">invalid_type</a>(unexp: <a class="enum" href="enum.Unexpected.html" title="enum serde::de::Unexpected">Unexpected</a>&lt;'_&gt;, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.invalid_value" class="fnname">invalid_value</a>(unexp: <a class="enum" href="enum.Unexpected.html" title="enum serde::de::Unexpected">Unexpected</a>&lt;'_&gt;, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.invalid_length" class="fnname">invalid_length</a>(len: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.usize.html">usize</a>, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.unknown_variant" class="fnname">unknown_variant</a>(variant: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>, expected: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">&amp;'static [</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">]</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.unknown_field" class="fnname">unknown_field</a>(field: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>, expected: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">&amp;'static [</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">]</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.missing_field" class="fnname">missing_field</a>(field: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>) -&gt; Self { ... }
<div class="item-spacer"></div> fn <a href="#method.duplicate_field" class="fnname">duplicate_field</a>(field: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>) -&gt; Self { ... }
}</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The <code>Error</code> trait allows <code>Deserialize</code> implementations to create descriptive
error messages belonging to the <code>Deserializer</code> against which they are
currently running.</p>
<p>Every <code>Deserializer</code> declares an <code>Error</code> type that encompasses both
general-purpose deserialization errors as well as errors specific to the
particular deserialization format. For example the <code>Error</code> type of
<code>serde_json</code> can represent errors like an invalid JSON escape sequence or an
unterminated string literal, in addition to the error cases that are part of
this trait.</p>
<p>Most deserializers should only need to provide the <code>Error::custom</code> method
and inherit the default behavior for the other methods.</p>
<h2 id="example-implementation" class="section-header"><a href="#example-implementation">Example implementation</a></h2>
<p>The <a href="https://serde.rs/data-format.html">example data format</a> presented on the website shows an error
type appropriate for a basic JSON data format.</p>
</div></details><h2 id="required-methods" class="small-section-header">Required methods<a href="#required-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="tymethod.custom" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#tymethod.custom" class="fnname">custom</a>&lt;T&gt;(msg: T) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>,&nbsp;</span></h4></div></summary><div class="docblock"><p>Raised when there is general error when deserializing a type.</p>
<p>The message should not be capitalized and should not end with a period.</p>
<div class='information'><div class='tooltip edition' data-edition="2018"></div></div><div class="example-wrap"><pre class="rust rust-example-rendered edition"><code><span class="kw">use</span> <span class="ident">serde::de</span>::{<span class="self">self</span>, <span class="ident">Deserialize</span>, <span class="ident">Deserializer</span>};
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;de</span><span class="op">&gt;</span> <span class="ident">Deserialize</span><span class="op">&lt;</span><span class="lifetime">&#39;de</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">IpAddr</span> {
<span class="kw">fn</span> <span class="ident">deserialize</span><span class="op">&lt;</span><span class="ident">D</span><span class="op">&gt;</span>(<span class="ident">deserializer</span>: <span class="ident">D</span>) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="self">Self</span>, <span class="ident">D::Error</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">D</span>: <span class="ident">Deserializer</span><span class="op">&lt;</span><span class="lifetime">&#39;de</span><span class="op">&gt;</span>,
{
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">String::deserialize</span>(<span class="ident">deserializer</span>)<span class="question-mark">?</span>;
<span class="ident">s</span>.<span class="ident">parse</span>().<span class="ident">map_err</span>(<span class="ident">de::Error::custom</span>)
}
}</code></pre></div>
</div></details></div><h2 id="provided-methods" class="small-section-header">Provided methods<a href="#provided-methods" class="anchor"></a></h2><div class="methods"><details class="rustdoc-toggle" open><summary><div id="method.invalid_type" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.invalid_type" class="fnname">invalid_type</a>(unexp: <a class="enum" href="enum.Unexpected.html" title="enum serde::de::Unexpected">Unexpected</a>&lt;'_&gt;, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> receives a type different from what it was
expecting.</p>
<p>The <code>unexp</code> argument provides information about what type was received.
This is the type that was present in the input file or other source data
of the Deserializer.</p>
<p>The <code>exp</code> argument provides information about what type was being
expected. This is the type that is written in the program.</p>
<p>For example if we try to deserialize a String out of a JSON file
containing an integer, the unexpected type is the integer and the
expected type is the string.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.invalid_value" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.invalid_value" class="fnname">invalid_value</a>(unexp: <a class="enum" href="enum.Unexpected.html" title="enum serde::de::Unexpected">Unexpected</a>&lt;'_&gt;, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> receives a value of the right type but that
is wrong for some other reason.</p>
<p>The <code>unexp</code> argument provides information about what value was received.
This is the value that was present in the input file or other source
data of the Deserializer.</p>
<p>The <code>exp</code> argument provides information about what value was being
expected. This is the type that is written in the program.</p>
<p>For example if we try to deserialize a String out of some binary data
that is not valid UTF-8, the unexpected value is the bytes and the
expected value is a string.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.invalid_length" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.invalid_length" class="fnname">invalid_length</a>(len: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.usize.html">usize</a>, exp: &amp;dyn <a class="trait" href="trait.Expected.html" title="trait serde::de::Expected">Expected</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when deserializing a sequence or map and the input data contains
too many or too few elements.</p>
<p>The <code>len</code> argument is the number of elements encountered. The sequence
or map may have expected more arguments or fewer arguments.</p>
<p>The <code>exp</code> argument provides information about what data was being
expected. For example <code>exp</code> might say that a tuple of size 6 was
expected.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.unknown_variant" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.unknown_variant" class="fnname">unknown_variant</a>(variant: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>, expected: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">&amp;'static [</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">]</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> enum type received a variant with an
unrecognized name.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.unknown_field" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.unknown_field" class="fnname">unknown_field</a>(field: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>, expected: <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">&amp;'static [</a>&amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.slice.html">]</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> struct type received a field with an
unrecognized name.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.missing_field" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.missing_field" class="fnname">missing_field</a>(field: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> struct type expected to receive a required
field with a particular name but that field was not present in the
input.</p>
</div></details><details class="rustdoc-toggle" open><summary><div id="method.duplicate_field" class="method has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/mod.rs.html#299" title="goto source code">[src]</a></div><h4 class="code-header">fn <a href="#method.duplicate_field" class="fnname">duplicate_field</a>(field: &amp;'static <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Raised when a <code>Deserialize</code> struct type received more than one of the
same field.</p>
</div></details></div><h2 id="implementors" class="small-section-header">Implementors<a href="#implementors" class="anchor"></a></h2><div class="item-list" id="implementors-list"><div id="impl-Error" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../../src/serde/de/value.rs.html#61-82" title="goto source code">[src]</a></div><a href="#impl-Error" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="trait.Error.html" title="trait serde::de::Error">Error</a> for <a class="struct" href="value/struct.Error.html" title="struct serde::de::value::Error">Error</a></h3></div></div><script type="text/javascript" src="../../implementors/serde/de/trait.Error.js" async></script></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="serde" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0 (9d1b2106e 2022-02-23)" ></div>
</body></html>