blob: 5a8461a4ae41d7142d5456ce706b10e6c7090785 [file] [log] [blame]
<!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="A structure that deserializes JSON into Rust values."><meta name="keywords" content="rust, rustlang, rust-lang, Deserializer"><title>Deserializer in serde_json::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" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.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 struct"><!--[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">&#9776;</button><a class="sidebar-logo" href="../../serde_json/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../serde_json/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Deserializer</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.end">end</a></li><li><a href="#method.from_reader">from_reader</a></li><li><a href="#method.from_slice">from_slice</a></li><li><a href="#method.from_str">from_str</a></li><li><a href="#method.into_iter">into_iter</a></li><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Deserializer%3C%27de%3E-for-%26%27a%20mut%20Deserializer%3CR%3E">Deserializer&lt;&#39;de&gt;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-Deserializer%3CR%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Deserializer%3CR%3E">Send</a></li><li><a href="#impl-Sync-for-Deserializer%3CR%3E">Sync</a></li><li><a href="#impl-Unpin-for-Deserializer%3CR%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Deserializer%3CR%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-Deserializer%3CR%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-Deserializer%3CR%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-Deserializer%3CR%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-Deserializer%3CR%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-Deserializer%3CR%3E">Into&lt;U&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-Deserializer%3CR%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-Deserializer%3CR%3E">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In serde_json::de</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">serde_json</a>::<wbr><a href="index.html">de</a>::<wbr><a class="struct" href="#">Deserializer</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></h1><span class="out-of-band"><a class="srclink" href="../../src/serde_json/de.rs.html#30-38">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct Deserializer&lt;R&gt; { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A structure that deserializes JSON into Rust values.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#40-63">source</a><a href="#impl-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;'de, R&gt; <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.Read.html" title="trait serde_json::de::Read">Read</a>&lt;'de&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#52-62">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>(read: R) -&gt; Self</h4></section></summary><div class="docblock"><p>Create a JSON deserializer from one of the possible serde_json input
sources.</p>
<p>Typically it is more convenient to use one of these methods instead:</p>
<ul>
<li>Deserializer::from_str</li>
<li>Deserializer::from_slice</li>
<li>Deserializer::from_reader</li>
</ul>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3CIoRead%3CR%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#66-78">source</a><a href="#impl-Deserializer%3CIoRead%3CR%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;<a class="struct" href="struct.IoRead.html" title="struct serde_json::de::IoRead">IoRead</a>&lt;R&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Read,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_reader" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#75-77">source</a><h4 class="code-header">pub fn <a href="#method.from_reader" class="fnname">from_reader</a>(reader: R) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a JSON deserializer from an <code>io::Read</code>.</p>
<p>Reader-based deserializers do not support deserializing borrowed types
like <code>&amp;str</code>, since the <code>std::io::Read</code> trait has no non-copying methods
– everything it does involves copying bytes out of the data source.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3CSliceRead%3C%27a%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#80-85">source</a><a href="#impl-Deserializer%3CSliceRead%3C%27a%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;<a class="struct" href="struct.SliceRead.html" title="struct serde_json::de::SliceRead">SliceRead</a>&lt;'a&gt;&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_slice" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#82-84">source</a><h4 class="code-header">pub fn <a href="#method.from_slice" class="fnname">from_slice</a>(bytes: &amp;'a [u8]) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a JSON deserializer from a <code>&amp;[u8]</code>.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3CStrRead%3C%27a%3E%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#87-92">source</a><a href="#impl-Deserializer%3CStrRead%3C%27a%3E%3E" class="anchor"></a><h3 class="code-header">impl&lt;'a&gt; <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;<a class="struct" href="struct.StrRead.html" title="struct serde_json::de::StrRead">StrRead</a>&lt;'a&gt;&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_str" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#89-91">source</a><h4 class="code-header">pub fn <a href="#method.from_str" class="fnname">from_str</a>(s: &amp;'a str) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a JSON deserializer from a <code>&amp;str</code>.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3CR%3E-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#135-1212">source</a><a href="#impl-Deserializer%3CR%3E-1" class="anchor"></a><h3 class="code-header">impl&lt;'de, R:&nbsp;<a class="trait" href="trait.Read.html" title="trait serde_json::de::Read">Read</a>&lt;'de&gt;&gt; <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.end" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#139-144">source</a><h4 class="code-header">pub fn <a href="#method.end" class="fnname">end</a>(&amp;mut self) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;()&gt;</h4></section></summary><div class="docblock"><p>The <code>Deserializer::end</code> method should be called after a value has been fully deserialized.
This allows the <code>Deserializer</code> to validate that the input stream is at the end or that it
only has trailing whitespace.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_iter" class="method has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#147-161">source</a><h4 class="code-header">pub fn <a href="#method.into_iter" class="fnname">into_iter</a>&lt;T&gt;(self) -&gt; <a class="struct" href="../struct.StreamDeserializer.html" title="struct serde_json::StreamDeserializer">StreamDeserializer</a>&lt;'de, R, T&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../struct.StreamDeserializer.html" title="struct serde_json::StreamDeserializer">StreamDeserializer</a>&lt;'de, R, T&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;'de, R, T&gt; Iterator for <a class="struct" href="../struct.StreamDeserializer.html" title="struct serde_json::StreamDeserializer">StreamDeserializer</a>&lt;'de, R, T&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.Read.html" title="trait serde_json::de::Read">Read</a>&lt;'de&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a>&lt;'de&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Item</a> = <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;T&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../../serde/de/trait.Deserialize.html" title="trait serde::de::Deserialize">Deserialize</a>&lt;'de&gt;,</span></h4></section></summary><div class="docblock"><p>Turn a JSON deserializer into an iterator over values of type T.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Deserializer%3C%27de%3E-for-%26%27a%20mut%20Deserializer%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1303-1895">source</a><a href="#impl-Deserializer%3C%27de%3E-for-%26%27a%20mut%20Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;'de, 'a, R:&nbsp;<a class="trait" href="trait.Read.html" title="trait serde_json::de::Read">Read</a>&lt;'de&gt;&gt; <a class="trait" href="../../serde/de/trait.Deserializer.html" title="trait serde::de::Deserializer">Deserializer</a>&lt;'de&gt; for &amp;'a mut <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_bytes" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1612-1640">source</a><a href="#method.deserialize_bytes" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_bytes" class="fnname">deserialize_bytes</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class="docblock"><p>Parses a JSON string as bytes. Note that this function does not check
whether the bytes represent a valid UTF-8 string.</p>
<p>The relevant part of the JSON specification is Section 8.2 of <a href="https://tools.ietf.org/html/rfc7159">RFC
7159</a>:</p>
<blockquote>
<p>When all the strings represented in a JSON text are composed entirely
of Unicode characters (however escaped), then that JSON text is
interoperable in the sense that all software implementations that
parse it will agree on the contents of names and of string values in
objects and arrays.</p>
<p>However, the ABNF in this specification allows member names and string
values to contain bit sequences that cannot encode Unicode characters;
for example, “\uDEAD” (a single unpaired UTF-16 surrogate). Instances
of this have been observed, for example, when a library truncates a
UTF-16 string without checking whether the truncation split a
surrogate pair. The behavior of software that receives JSON texts
containing such values is unpredictable; for example, implementations
might return different values for the length of a string value or even
suffer fatal runtime exceptions.</p>
</blockquote>
<p>The behavior of serde_json is specified to fail on non-UTF-8 strings
when deserializing into Rust UTF-8 string types such as String, and
succeed with non-UTF-8 bytes when deserializing using this method.</p>
<p>Escape sequences are processed as usual, and for <code>\uXXXX</code> escapes it is
still checked if the hex number represents a valid Unicode code point.</p>
<h5 id="examples"><a href="#examples">Examples</a></h5>
<p>You can use this to parse JSON strings containing invalid UTF-8 bytes,
or unpaired surrogates.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>serde_bytes::ByteBuf;
<span class="kw">fn </span>look_at_bytes() -&gt; <span class="prelude-ty">Result</span>&lt;(), serde_json::Error&gt; {
<span class="kw">let </span>json_data = <span class="string">b&quot;\&quot;some bytes: \xe5\x00\xe5\&quot;&quot;</span>;
<span class="kw">let </span>bytes: ByteBuf = serde_json::from_slice(json_data)<span class="question-mark">?</span>;
<span class="macro">assert_eq!</span>(<span class="string">b&#39;\xe5&#39;</span>, bytes[<span class="number">12</span>]);
<span class="macro">assert_eq!</span>(<span class="string">b&#39;\0&#39;</span>, bytes[<span class="number">13</span>]);
<span class="macro">assert_eq!</span>(<span class="string">b&#39;\xe5&#39;</span>, bytes[<span class="number">14</span>]);
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
<p>Backslash escape sequences like <code>\n</code> are still interpreted and required
to be valid. <code>\u</code> escape sequences are required to represent a valid
Unicode code point or lone surrogate.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>serde_bytes::ByteBuf;
<span class="kw">fn </span>look_at_bytes() -&gt; <span class="prelude-ty">Result</span>&lt;(), serde_json::Error&gt; {
<span class="kw">let </span>json_data = <span class="string">b&quot;\&quot;lone surrogate: \\uD801\&quot;&quot;</span>;
<span class="kw">let </span>bytes: ByteBuf = serde_json::from_slice(json_data)<span class="question-mark">?</span>;
<span class="kw">let </span>expected = <span class="string">b&quot;lone surrogate: \xED\xA0\x81&quot;</span>;
<span class="macro">assert_eq!</span>(expected, bytes.as_slice());
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_option" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1652-1664">source</a><a href="#method.deserialize_option" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_option" class="fnname">deserialize_option</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class="docblock"><p>Parses a <code>null</code> as a None, and any other values as a <code>Some(...)</code>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_newtype_struct" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1701-1714">source</a><a href="#method.deserialize_newtype_struct" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_newtype_struct" class="fnname">deserialize_newtype_struct</a>&lt;V&gt;(self, name: &amp;str, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class="docblock"><p>Parses a newtype struct as the underlying value.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_enum" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1850-1879">source</a><a href="#method.deserialize_enum" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_enum" class="fnname">deserialize_enum</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;_name: &amp;str,<br>&nbsp;&nbsp;&nbsp;&nbsp;_variants: &amp;'static [&amp;'static str],<br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class="docblock"><p>Parses an enum as an object like <code>{&quot;$KEY&quot;:$VALUE}</code>, where $VALUE is either a straight
value, a <code>[..]</code>, or a <code>{..}</code>.</p>
</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="../../serde/de/trait.Deserializer.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="struct" href="../struct.Error.html" title="struct serde_json::Error">Error</a></h4></section></summary><div class='docblock'>The error type that can be returned if some error occurs during
deserialization. <a href="../../serde/de/trait.Deserializer.html#associatedtype.Error">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1307-1381">source</a><a href="#method.deserialize_any" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_any" class="fnname">deserialize_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Require the <code>Deserializer</code> to figure out how to drive the visitor based
on what data type is in the input. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_any">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_bool" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1383-1412">source</a><a href="#method.deserialize_bool" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_bool" class="fnname">deserialize_bool</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>bool</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_i8" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1414">source</a><a href="#method.deserialize_i8" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_i8" class="fnname">deserialize_i8</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>i8</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_i16" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1415">source</a><a href="#method.deserialize_i16" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_i16" class="fnname">deserialize_i16</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>i16</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_i32" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1416">source</a><a href="#method.deserialize_i32" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_i32" class="fnname">deserialize_i32</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>i32</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_i64" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1417">source</a><a href="#method.deserialize_i64" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_i64" class="fnname">deserialize_i64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>i64</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_u8" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1418">source</a><a href="#method.deserialize_u8" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_u8" class="fnname">deserialize_u8</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>u8</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_u16" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1419">source</a><a href="#method.deserialize_u16" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_u16" class="fnname">deserialize_u16</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>u16</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_u32" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1420">source</a><a href="#method.deserialize_u32" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_u32" class="fnname">deserialize_u32</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>u32</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_u64" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1421">source</a><a href="#method.deserialize_u64" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_u64" class="fnname">deserialize_u64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>u64</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_f32" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1423">source</a><a href="#method.deserialize_f32" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_f32" class="fnname">deserialize_f32</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>f32</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_f64" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1424">source</a><a href="#method.deserialize_f64" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_f64" class="fnname">deserialize_f64</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>f64</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_i128" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1437-1467">source</a><a href="#method.deserialize_i128" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#method.deserialize_i128" class="fnname">deserialize_i128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>i128</code> value. <a href="../../serde/de/trait.Deserializer.html#method.deserialize_i128">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_u128" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1469-1497">source</a><a href="#method.deserialize_u128" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#method.deserialize_u128" class="fnname">deserialize_u128</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting an <code>u128</code> value. <a href="../../serde/de/trait.Deserializer.html#method.deserialize_u128">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_char" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1499-1504">source</a><a href="#method.deserialize_char" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_char" class="fnname">deserialize_char</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a <code>char</code> value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_str" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1506-1533">source</a><a href="#method.deserialize_str" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_str" class="fnname">deserialize_str</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a string value and does
not benefit from taking ownership of buffered data owned by the
<code>Deserializer</code>. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_str">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1535-1540">source</a><a href="#method.deserialize_string" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_string" class="fnname">deserialize_string</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a string value and would
benefit from taking ownership of buffered data owned by the
<code>Deserializer</code>. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_string">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_byte_buf" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1643-1648">source</a><a href="#method.deserialize_byte_buf" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf" class="fnname">deserialize_byte_buf</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a byte array and would
benefit from taking ownership of buffered data owned by the
<code>Deserializer</code>. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_byte_buf">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_unit" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1666-1690">source</a><a href="#method.deserialize_unit" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit" class="fnname">deserialize_unit</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a unit value.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_unit_struct" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1692-1697">source</a><a href="#method.deserialize_unit_struct" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct" class="fnname">deserialize_unit_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;_name: &amp;'static str,<br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a unit struct with a
particular name. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_unit_struct">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_seq" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1716-1746">source</a><a href="#method.deserialize_seq" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_seq" class="fnname">deserialize_seq</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a sequence of values.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_tuple" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1748-1753">source</a><a href="#method.deserialize_tuple" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple" class="fnname">deserialize_tuple</a>&lt;V&gt;(self, _len: usize, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a sequence of values and
knows how many values there are without looking at the serialized data. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_tuple_struct" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1755-1765">source</a><a href="#method.deserialize_tuple_struct" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct" class="fnname">deserialize_tuple_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;_name: &amp;'static str,<br>&nbsp;&nbsp;&nbsp;&nbsp;_len: usize,<br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a tuple struct with a
particular name and number of fields. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_tuple_struct">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1767-1797">source</a><a href="#method.deserialize_map" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_map" class="fnname">deserialize_map</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a map of key-value pairs.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_struct" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1799-1845">source</a><a href="#method.deserialize_struct" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct" class="fnname">deserialize_struct</a>&lt;V&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;_name: &amp;'static str,<br>&nbsp;&nbsp;&nbsp;&nbsp;_fields: &amp;'static [&amp;'static str],<br>&nbsp;&nbsp;&nbsp;&nbsp;visitor: V<br>) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting a struct with a particular
name and fields. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_struct">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_identifier" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1881-1886">source</a><a href="#method.deserialize_identifier" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier" class="fnname">deserialize_identifier</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type is expecting the name of a struct
field or the discriminant of an enum variant. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_identifier">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.deserialize_ignored_any" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde_json/de.rs.html#1888-1894">source</a><a href="#method.deserialize_ignored_any" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any" class="fnname">deserialize_ignored_any</a>&lt;V&gt;(self, visitor: V) -&gt; <a class="type" href="../type.Result.html" title="type serde_json::Result">Result</a>&lt;V::<a class="associatedtype" href="../../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;V: <a class="trait" href="../../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a>&lt;'de&gt;,</span></h4></section></summary><div class='docblock'>Hint that the <code>Deserialize</code> type needs to deserialize a value whose type
doesn’t matter because it is ignored. <a href="../../serde/de/trait.Deserializer.html#tymethod.deserialize_ignored_any">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_human_readable" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/serde/de/mod.rs.html#1219">source</a><a href="#method.is_human_readable" class="anchor"></a><h4 class="code-header">fn <a href="../../serde/de/trait.Deserializer.html#method.is_human_readable" class="fnname">is_human_readable</a>(&amp;self) -&gt; bool</h4></section></summary><div class='docblock'>Determine whether <code>Deserialize</code> implementations should expect to
deserialize their human-readable form. <a href="../../serde/de/trait.Deserializer.html#method.is_human_readable">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; RefUnwindSafe for <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: RefUnwindSafe,</span></h3></section><section id="impl-Send-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Send-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; Send for <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Send,</span></h3></section><section id="impl-Sync-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Sync-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; Sync for <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Sync,</span></h3></section><section id="impl-Unpin-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Unpin-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; Unpin for <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: Unpin,</span></h3></section><section id="impl-UnwindSafe-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; UnwindSafe for <a class="struct" href="../struct.Deserializer.html" title="struct serde_json::Deserializer">Deserializer</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: UnwindSafe,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Any-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-2" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-Deserializer%3CR%3E" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-Deserializer%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="serde_json" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>