456 lines
90 KiB
HTML
456 lines
90 KiB
HTML
|
<!DOCTYPE html>
|
|||
|
<html lang="en">
|
|||
|
<head>
|
|||
|
<meta charset="utf-8">
|
|||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|||
|
<meta name="generator" content="rustdoc">
|
|||
|
<meta name="description" content="API documentation for the Rust `Deserializer` trait in crate `serde`.">
|
|||
|
<meta name="keywords" content="rust, rustlang, rust-lang, Deserializer">
|
|||
|
|
|||
|
<title>serde::Deserializer - 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="../main.css" id="themeStyle">
|
|||
|
<script src="../storage.js"></script>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</head>
|
|||
|
<body class="rustdoc trait">
|
|||
|
<!--[if lte IE 8]>
|
|||
|
<div class="warning">
|
|||
|
This old browser is unsupported and will most likely display funky
|
|||
|
things.
|
|||
|
</div>
|
|||
|
<![endif]-->
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<nav class="sidebar">
|
|||
|
<div class="sidebar-menu">☰</div>
|
|||
|
|
|||
|
<p class='location'>Trait Deserializer</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#associated-types">Associated Types</a><div class="sidebar-links"><a href="#associatedtype.Error">Error</a></div><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.deserialize_any">deserialize_any</a><a href="#tymethod.deserialize_bool">deserialize_bool</a><a href="#tymethod.deserialize_i8">deserialize_i8</a><a href="#tymethod.deserialize_i16">deserialize_i16</a><a href="#tymethod.deserialize_i32">deserialize_i32</a><a href="#tymethod.deserialize_i64">deserialize_i64</a><a href="#tymethod.deserialize_u8">deserialize_u8</a><a href="#tymethod.deserialize_u16">deserialize_u16</a><a href="#tymethod.deserialize_u32">deserialize_u32</a><a href="#tymethod.deserialize_u64">deserialize_u64</a><a href="#tymethod.deserialize_f32">deserialize_f32</a><a href="#tymethod.deserialize_f64">deserialize_f64</a><a href="#tymethod.deserialize_char">deserialize_char</a><a href="#tymethod.deserialize_str">deserialize_str</a><a href="#tymethod.deserialize_string">deserialize_string</a><a href="#tymethod.deserialize_bytes">deserialize_bytes</a><a href="#tymethod.deserialize_byte_buf">deserialize_byte_buf</a><a href="#tymethod.deserialize_option">deserialize_option</a><a href="#tymethod.deserialize_unit">deserialize_unit</a><a href="#tymethod.deserialize_unit_struct">deserialize_unit_struct</a><a href="#tymethod.deserialize_newtype_struct">deserialize_newtype_struct</a><a href="#tymethod.deserialize_seq">deserialize_seq</a><a href="#tymethod.deserialize_tuple">deserialize_tuple</a><a href="#tymethod.deserialize_tuple_struct">deserialize_tuple_struct</a><a href="#tymethod.deserialize_map">deserialize_map</a><a href="#tymethod.deserialize_struct">deserialize_struct</a><a href="#tymethod.deserialize_enum">deserialize_enum</a><a href="#tymethod.deserialize_identifier">deserialize_identifier</a><a href="#tymethod.deserialize_ignored_any">deserialize_ignored_any</a></div><a class="sidebar-title" href="#provided-methods">Provided Methods</a><div class="sidebar-links"><a href="#method.is_human_readable">is_human_readable</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='index.html'>serde</a></p><script>window.sidebarCurrent = {name: 'Deserializer', ty: 'trait', 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 js-only">
|
|||
|
<div class="search-container">
|
|||
|
<input class="search-input" name="search"
|
|||
|
autocomplete="off"
|
|||
|
placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
|
|||
|
type="search">
|
|||
|
</div>
|
|||
|
</form>
|
|||
|
</nav>
|
|||
|
|
|||
|
<section id='main' class="content">
|
|||
|
<h1 class='fqn'><span class='in-band'>Trait <a href='index.html'>serde</a>::<wbr><a class="trait" href=''>Deserializer</a></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'>−</span>]
|
|||
|
</a>
|
|||
|
</span><a class='srclink' href='../src/serde/de/mod.rs.html#892-1209' title='goto source code'>[src]</a></span></h1>
|
|||
|
<pre class='rust trait'>pub trait Deserializer<'de>: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a> {
|
|||
|
type <a href='#associatedtype.Error' class="type">Error</a>: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>;
|
|||
|
fn <a href='#tymethod.deserialize_any' class='fnname'>deserialize_any</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_i8' class='fnname'>deserialize_i8</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_i16' class='fnname'>deserialize_i16</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_i32' class='fnname'>deserialize_i32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_i64' class='fnname'>deserialize_i64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_u8' class='fnname'>deserialize_u8</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_u16' class='fnname'>deserialize_u16</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_u32' class='fnname'>deserialize_u32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_u64' class='fnname'>deserialize_u64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_f32' class='fnname'>deserialize_f32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_char' class='fnname'>deserialize_char</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_str' class='fnname'>deserialize_str</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_string' class='fnname'>deserialize_string</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a><V>(<br> self, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_option' class='fnname'>deserialize_option</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a><V>(<br> self, <br> len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_map' class='fnname'>deserialize_map</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> fields: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'static [</a>&'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> variants: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'static [</a>&'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a><V>(<br> self, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
<div class='item-spacer'></div> fn <a href='#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a><V>(<br> self, <br> visitor: V<br> ) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>><br> <span class="where">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de></span>;
|
|||
|
|
|||
|
fn <a href='#method.is_human_readable' class='fnname'>is_human_readable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a> { ... }
|
|||
|
}</pre><div class='docblock'><p>A <strong>data format</strong> that can deserialize any data structure supported by
|
|||
|
Serde.</p>
|
|||
|
<p>The role of this trait is to define the deserialization half of the <a href="https://serde.rs/data-model.html">Serde
|
|||
|
data model</a>, which is a way to categorize every Rust data type into one of
|
|||
|
29 possible types. Each method of the <code>Serializer</code> trait corresponds to one
|
|||
|
of the types of the data model.</p>
|
|||
|
<p>Implementations of <code>Deserialize</code> map themselves into this data model by
|
|||
|
passing to the <code>Deserializer</code> a <code>Visitor</code> implementation that can receive
|
|||
|
these various types.</p>
|
|||
|
<p>The types that make up the Serde data model are:</p>
|
|||
|
<ul>
|
|||
|
<li><strong>14 primitive types</strong>
|
|||
|
<ul>
|
|||
|
<li>bool</li>
|
|||
|
<li>i8, i16, i32, i64, i128</li>
|
|||
|
<li>u8, u16, u32, u64, u128</li>
|
|||
|
<li>f32, f64</li>
|
|||
|
<li>char</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>string</strong>
|
|||
|
<ul>
|
|||
|
<li>UTF-8 bytes with a length and no null terminator.</li>
|
|||
|
<li>When serializing, all strings are handled equally. When deserializing,
|
|||
|
there are three flavors of strings: transient, owned, and borrowed.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>byte array</strong> - [u8]
|
|||
|
<ul>
|
|||
|
<li>Similar to strings, during deserialization byte arrays can be
|
|||
|
transient, owned, or borrowed.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>option</strong>
|
|||
|
<ul>
|
|||
|
<li>Either none or some value.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>unit</strong>
|
|||
|
<ul>
|
|||
|
<li>The type of <code>()</code> in Rust. It represents an anonymous value containing
|
|||
|
no data.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>unit_struct</strong>
|
|||
|
<ul>
|
|||
|
<li>For example <code>struct Unit</code> or <code>PhantomData<T></code>. It represents a named
|
|||
|
value containing no data.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>unit_variant</strong>
|
|||
|
<ul>
|
|||
|
<li>For example the <code>E::A</code> and <code>E::B</code> in <code>enum E { A, B }</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>newtype_struct</strong>
|
|||
|
<ul>
|
|||
|
<li>For example <code>struct Millimeters(u8)</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>newtype_variant</strong>
|
|||
|
<ul>
|
|||
|
<li>For example the <code>E::N</code> in <code>enum E { N(u8) }</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>seq</strong>
|
|||
|
<ul>
|
|||
|
<li>A variably sized heterogeneous sequence of values, for example <code>Vec<T></code>
|
|||
|
or <code>HashSet<T></code>. When serializing, the length may or may not be known
|
|||
|
before iterating through all the data. When deserializing, the length
|
|||
|
is determined by looking at the serialized data.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>tuple</strong>
|
|||
|
<ul>
|
|||
|
<li>A statically sized heterogeneous sequence of values for which the
|
|||
|
length will be known at deserialization time without looking at the
|
|||
|
serialized data, for example <code>(u8,)</code> or <code>(String, u64, Vec<T>)</code> or
|
|||
|
<code>[u64; 10]</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>tuple_struct</strong>
|
|||
|
<ul>
|
|||
|
<li>A named tuple, for example <code>struct Rgb(u8, u8, u8)</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>tuple_variant</strong>
|
|||
|
<ul>
|
|||
|
<li>For example the <code>E::T</code> in <code>enum E { T(u8, u8) }</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>map</strong>
|
|||
|
<ul>
|
|||
|
<li>A heterogeneous key-value pairing, for example <code>BTreeMap<K, V></code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>struct</strong>
|
|||
|
<ul>
|
|||
|
<li>A heterogeneous key-value pairing in which the keys are strings and
|
|||
|
will be known at deserialization time without looking at the serialized
|
|||
|
data, for example <code>struct S { r: u8, g: u8, b: u8 }</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
<li><strong>struct_variant</strong>
|
|||
|
<ul>
|
|||
|
<li>For example the <code>E::S</code> in <code>enum E { S { r: u8, g: u8, b: u8 } }</code>.</li>
|
|||
|
</ul>
|
|||
|
</li>
|
|||
|
</ul>
|
|||
|
<p>The <code>Deserializer</code> trait supports two entry point styles which enables
|
|||
|
different kinds of deserialization.</p>
|
|||
|
<ol>
|
|||
|
<li>
|
|||
|
<p>The <code>deserialize</code> method. Self-describing data formats like JSON are able
|
|||
|
to look at the serialized data and tell what it represents. For example
|
|||
|
the JSON deserializer may see an opening curly brace (<code>{</code>) and know that
|
|||
|
it is seeing a map. If the data format supports
|
|||
|
<code>Deserializer::deserialize_any</code>, it will drive the Visitor using whatever
|
|||
|
type it sees in the input. JSON uses this approach when deserializing
|
|||
|
<code>serde_json::Value</code> which is an enum that can represent any JSON
|
|||
|
document. Without knowing what is in a JSON document, we can deserialize
|
|||
|
it to <code>serde_json::Value</code> by going through
|
|||
|
<code>Deserializer::deserialize_any</code>.</p>
|
|||
|
</li>
|
|||
|
<li>
|
|||
|
<p>The various <code>deserialize_*</code> methods. Non-self-describing formats like
|
|||
|
Bincode need to be told what is in the input in order to deserialize it.
|
|||
|
The <code>deserialize_*</code> methods are hints to the deserializer for how to
|
|||
|
interpret the next piece of input. Non-self-describing formats are not
|
|||
|
able to deserialize something like <code>serde_json::Value</code> which relies on
|
|||
|
<code>Deserializer::deserialize_any</code>.</p>
|
|||
|
</li>
|
|||
|
</ol>
|
|||
|
<p>When implementing <code>Deserialize</code>, you should avoid relying on
|
|||
|
<code>Deserializer::deserialize_any</code> unless you need to be told by the
|
|||
|
Deserializer what type is in the input. Know that relying on
|
|||
|
<code>Deserializer::deserialize_any</code> means your data type will be able to
|
|||
|
deserialize from self-describing formats only, ruling out Bincode and many
|
|||
|
others.</p>
|
|||
|
<h1 id="lifetime" class="section-header"><a href="#lifetime">Lifetime</a></h1>
|
|||
|
<p>The <code>'de</code> lifetime of this trait is the lifetime of data that may be
|
|||
|
borrowed from the input when deserializing. See the page <a href="https://serde.rs/lifetimes.html">Understanding
|
|||
|
deserializer lifetimes</a> for a more detailed explanation of these lifetimes.</p>
|
|||
|
<h1 id="example-implementation" class="section-header"><a href="#example-implementation">Example implementation</a></h1>
|
|||
|
<p>The <a href="https://serde.rs/data-format.html">example data format</a> presented on the website contains example code for
|
|||
|
a basic JSON <code>Deserializer</code>.</p>
|
|||
|
</div>
|
|||
|
<h2 id='associated-types' class='small-section-header'>
|
|||
|
Associated Types<a href='#associated-types' class='anchor'></a>
|
|||
|
</h2>
|
|||
|
<div class='methods'>
|
|||
|
<h3 id='associatedtype.Error' class='method'><span id='Error.t' class='invisible'><code>type <a href='#associatedtype.Error' class="type">Error</a>: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a></code></span></h3><div class='docblock'><p>The error type that can be returned if some error occurs during
|
|||
|
deserialization.</p>
|
|||
|
</div></div>
|
|||
|
<h2 id='required-methods' class='small-section-header'>
|
|||
|
Required Methods<a href='#required-methods' class='anchor'></a>
|
|||
|
</h2>
|
|||
|
<div class='methods'>
|
|||
|
<h3 id='tymethod.deserialize_any' class='method'><span id='deserialize_any.v' class='invisible'><code>fn <a href='#tymethod.deserialize_any' class='fnname'>deserialize_any</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Require the <code>Deserializer</code> to figure out how to drive the visitor based
|
|||
|
on what data type is in the input.</p>
|
|||
|
<p>When implementing <code>Deserialize</code>, you should avoid relying on
|
|||
|
<code>Deserializer::deserialize_any</code> unless you need to be told by the
|
|||
|
Deserializer what type is in the input. Know that relying on
|
|||
|
<code>Deserializer::deserialize_any</code> means your data type will be able to
|
|||
|
deserialize from self-describing formats only, ruling out Bincode and
|
|||
|
many others.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_bool' class='method'><span id='deserialize_bool.v' class='invisible'><code>fn <a href='#tymethod.deserialize_bool' class='fnname'>deserialize_bool</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>bool</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_i8' class='method'><span id='deserialize_i8.v' class='invisible'><code>fn <a href='#tymethod.deserialize_i8' class='fnname'>deserialize_i8</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an <code>i8</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_i16' class='method'><span id='deserialize_i16.v' class='invisible'><code>fn <a href='#tymethod.deserialize_i16' class='fnname'>deserialize_i16</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an <code>i16</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_i32' class='method'><span id='deserialize_i32.v' class='invisible'><code>fn <a href='#tymethod.deserialize_i32' class='fnname'>deserialize_i32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an <code>i32</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_i64' class='method'><span id='deserialize_i64.v' class='invisible'><code>fn <a href='#tymethod.deserialize_i64' class='fnname'>deserialize_i64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an <code>i64</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_u8' class='method'><span id='deserialize_u8.v' class='invisible'><code>fn <a href='#tymethod.deserialize_u8' class='fnname'>deserialize_u8</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>u8</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_u16' class='method'><span id='deserialize_u16.v' class='invisible'><code>fn <a href='#tymethod.deserialize_u16' class='fnname'>deserialize_u16</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>u16</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_u32' class='method'><span id='deserialize_u32.v' class='invisible'><code>fn <a href='#tymethod.deserialize_u32' class='fnname'>deserialize_u32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>u32</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_u64' class='method'><span id='deserialize_u64.v' class='invisible'><code>fn <a href='#tymethod.deserialize_u64' class='fnname'>deserialize_u64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>u64</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_f32' class='method'><span id='deserialize_f32.v' class='invisible'><code>fn <a href='#tymethod.deserialize_f32' class='fnname'>deserialize_f32</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>f32</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_f64' class='method'><span id='deserialize_f64.v' class='invisible'><code>fn <a href='#tymethod.deserialize_f64' class='fnname'>deserialize_f64</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>f64</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_char' class='method'><span id='deserialize_char.v' class='invisible'><code>fn <a href='#tymethod.deserialize_char' class='fnname'>deserialize_char</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a <code>char</code> value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_str' class='method'><span id='deserialize_str.v' class='invisible'><code>fn <a href='#tymethod.deserialize_str' class='fnname'>deserialize_str</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>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>.</p>
|
|||
|
<p>If the <code>Visitor</code> would benefit from taking ownership of <code>String</code> data,
|
|||
|
indiciate this to the <code>Deserializer</code> by using <code>deserialize_string</code>
|
|||
|
instead.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_string' class='method'><span id='deserialize_string.v' class='invisible'><code>fn <a href='#tymethod.deserialize_string' class='fnname'>deserialize_string</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>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>.</p>
|
|||
|
<p>If the <code>Visitor</code> would not benefit from taking ownership of <code>String</code>
|
|||
|
data, indicate that to the <code>Deserializer</code> by using <code>deserialize_str</code>
|
|||
|
instead.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_bytes' class='method'><span id='deserialize_bytes.v' class='invisible'><code>fn <a href='#tymethod.deserialize_bytes' class='fnname'>deserialize_bytes</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a byte array and does not
|
|||
|
benefit from taking ownership of buffered data owned by the
|
|||
|
<code>Deserializer</code>.</p>
|
|||
|
<p>If the <code>Visitor</code> would benefit from taking ownership of <code>Vec<u8></code> data,
|
|||
|
indicate this to the <code>Deserializer</code> by using <code>deserialize_byte_buf</code>
|
|||
|
instead.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_byte_buf' class='method'><span id='deserialize_byte_buf.v' class='invisible'><code>fn <a href='#tymethod.deserialize_byte_buf' class='fnname'>deserialize_byte_buf</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>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>.</p>
|
|||
|
<p>If the <code>Visitor</code> would not benefit from taking ownership of <code>Vec<u8></code>
|
|||
|
data, indicate that to the <code>Deserializer</code> by using <code>deserialize_bytes</code>
|
|||
|
instead.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_option' class='method'><span id='deserialize_option.v' class='invisible'><code>fn <a href='#tymethod.deserialize_option' class='fnname'>deserialize_option</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an optional value.</p>
|
|||
|
<p>This allows deserializers that encode an optional value as a nullable
|
|||
|
value to convert the null value into <code>None</code> and a regular value into
|
|||
|
<code>Some(value)</code>.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_unit' class='method'><span id='deserialize_unit.v' class='invisible'><code>fn <a href='#tymethod.deserialize_unit' class='fnname'>deserialize_unit</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a unit value.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_unit_struct' class='method'><span id='deserialize_unit_struct.v' class='invisible'><code>fn <a href='#tymethod.deserialize_unit_struct' class='fnname'>deserialize_unit_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a unit struct with a
|
|||
|
particular name.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_newtype_struct' class='method'><span id='deserialize_newtype_struct.v' class='invisible'><code>fn <a href='#tymethod.deserialize_newtype_struct' class='fnname'>deserialize_newtype_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a newtype struct with a
|
|||
|
particular name.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_seq' class='method'><span id='deserialize_seq.v' class='invisible'><code>fn <a href='#tymethod.deserialize_seq' class='fnname'>deserialize_seq</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a sequence of values.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_tuple' class='method'><span id='deserialize_tuple.v' class='invisible'><code>fn <a href='#tymethod.deserialize_tuple' class='fnname'>deserialize_tuple</a><V>(<br> self, <br> len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>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.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_tuple_struct' class='method'><span id='deserialize_tuple_struct.v' class='invisible'><code>fn <a href='#tymethod.deserialize_tuple_struct' class='fnname'>deserialize_tuple_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a tuple struct with a
|
|||
|
particular name and number of fields.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_map' class='method'><span id='deserialize_map.v' class='invisible'><code>fn <a href='#tymethod.deserialize_map' class='fnname'>deserialize_map</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a map of key-value pairs.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_struct' class='method'><span id='deserialize_struct.v' class='invisible'><code>fn <a href='#tymethod.deserialize_struct' class='fnname'>deserialize_struct</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> fields: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'static [</a>&'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting a struct with a particular
|
|||
|
name and fields.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_enum' class='method'><span id='deserialize_enum.v' class='invisible'><code>fn <a href='#tymethod.deserialize_enum' class='fnname'>deserialize_enum</a><V>(<br> self, <br> name: &'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, <br> variants: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&'static [</a>&'static <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>, <br> visitor: V<br>) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting an enum value with a
|
|||
|
particular name and possible variants.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_identifier' class='method'><span id='deserialize_identifier.v' class='invisible'><code>fn <a href='#tymethod.deserialize_identifier' class='fnname'>deserialize_identifier</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type is expecting the name of a struct
|
|||
|
field or the discriminant of an enum variant.</p>
|
|||
|
</div><h3 id='tymethod.deserialize_ignored_any' class='method'><span id='deserialize_ignored_any.v' class='invisible'><code>fn <a href='#tymethod.deserialize_ignored_any' class='fnname'>deserialize_ignored_any</a><V>(self, visitor: V) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><V::<a class="type" href="../serde/de/trait.Visitor.html#associatedtype.Value" title="type serde::de::Visitor::Value">Value</a>, Self::<a class="type" href="../serde/trait.Deserializer.html#associatedtype.Error" title="type serde::Deserializer::Error">Error</a>> <span class="where fmt-newline">where<br> V: <a class="trait" href="../serde/de/trait.Visitor.html" title="trait serde::de::Visitor">Visitor</a><'de>, </span></code></span></h3><div class='docblock'><p>Hint that the <code>Deserialize</code> type needs to deserialize a value whose type
|
|||
|
doesn't matter because it is ignored.</p>
|
|||
|
<p>Deserializers for non-self-describing formats may not support this mode.</p>
|
|||
|
</div></div>
|
|||
|
<h2 id='provided-methods' class='small-section-header'>
|
|||
|
Provided Methods<a href='#provided-methods' class='anchor'></a>
|
|||
|
</h2>
|
|||
|
<div class='methods'>
|
|||
|
<h3 id='method.is_human_readable' class='method'><span id='is_human_readable.v' class='invisible'><code>fn <a href='#method.is_human_readable' class='fnname'>is_human_readable</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></h3><div class='docblock'><p>Determine whether <code>Deserialize</code> implementations should expect to
|
|||
|
deserialize their human-readable form.</p>
|
|||
|
<p>Some types have a human-readable form that may be somewhat expensive to
|
|||
|
construct, as well as a binary form that is compact and efficient.
|
|||
|
Generally text-based formats like JSON and YAML will prefer to use the
|
|||
|
human-readable one and binary formats like Bincode will prefer the
|
|||
|
compact one.</p>
|
|||
|
|
|||
|
<pre class="rust rust-example-rendered">
|
|||
|
<span class="kw">use</span> <span class="ident">serde</span>::<span class="ident">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"><</span><span class="lifetime">'de</span><span class="op">></span> <span class="ident">Deserialize</span><span class="op"><</span><span class="lifetime">'de</span><span class="op">></span> <span class="kw">for</span> <span class="ident">Timestamp</span> {
|
|||
|
<span class="kw">fn</span> <span class="ident">deserialize</span><span class="op"><</span><span class="ident">D</span><span class="op">></span>(<span class="ident">deserializer</span>: <span class="ident">D</span>) <span class="op">-></span> <span class="prelude-ty">Result</span><span class="op"><</span><span class="self">Self</span>, <span class="ident">D</span>::<span class="ident">Error</span><span class="op">></span>
|
|||
|
<span class="kw">where</span>
|
|||
|
<span class="ident">D</span>: <span class="ident">Deserializer</span><span class="op"><</span><span class="lifetime">'de</span><span class="op">></span>,
|
|||
|
{
|
|||
|
<span class="kw">if</span> <span class="ident">deserializer</span>.<span class="ident">is_human_readable</span>() {
|
|||
|
<span class="comment">// Deserialize from a human-readable string like "2015-05-15T17:01:00Z".</span>
|
|||
|
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">deserialize</span>(<span class="ident">deserializer</span>)<span class="question-mark">?</span>;
|
|||
|
<span class="ident">Timestamp</span>::<span class="ident">from_str</span>(<span class="kw-2">&</span><span class="ident">s</span>).<span class="ident">map_err</span>(<span class="ident">de</span>::<span class="ident">Error</span>::<span class="ident">custom</span>)
|
|||
|
} <span class="kw">else</span> {
|
|||
|
<span class="comment">// Deserialize from a compact binary representation, seconds since</span>
|
|||
|
<span class="comment">// the Unix epoch.</span>
|
|||
|
<span class="kw">let</span> <span class="ident">n</span> <span class="op">=</span> <span class="ident">u64</span>::<span class="ident">deserialize</span>(<span class="ident">deserializer</span>)<span class="question-mark">?</span>;
|
|||
|
<span class="prelude-val">Ok</span>(<span class="ident">Timestamp</span>::<span class="ident">EPOCH</span> <span class="op">+</span> <span class="ident">Duration</span>::<span class="ident">seconds</span>(<span class="ident">n</span>))
|
|||
|
}
|
|||
|
}
|
|||
|
}</pre>
|
|||
|
<p>The default implementation of this method returns <code>true</code>. Data formats
|
|||
|
may override this to <code>false</code> to request a compact form for types that
|
|||
|
support one. Note that modifying this method to change a format from
|
|||
|
human-readable to compact or vice versa should be regarded as a breaking
|
|||
|
change, as a value serialized in human-readable mode is not required to
|
|||
|
deserialize from the same data in compact mode.</p>
|
|||
|
</div></div>
|
|||
|
<h2 id='implementors' class='small-section-header'>
|
|||
|
Implementors<a href='#implementors' class='anchor'></a>
|
|||
|
</h2>
|
|||
|
<ul class='item-list' id='implementors-list'>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#150-175' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.UnitDeserializer.html" title="struct serde::de::value::UnitDeserializer">UnitDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.BoolDeserializer.html" title="struct serde::de::value::BoolDeserializer">BoolDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.I8Deserializer.html" title="struct serde::de::value::I8Deserializer">I8Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.I16Deserializer.html" title="struct serde::de::value::I16Deserializer">I16Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.I32Deserializer.html" title="struct serde::de::value::I32Deserializer">I32Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.I64Deserializer.html" title="struct serde::de::value::I64Deserializer">I64Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.IsizeDeserializer.html" title="struct serde::de::value::IsizeDeserializer">IsizeDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.U8Deserializer.html" title="struct serde::de::value::U8Deserializer">U8Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.U16Deserializer.html" title="struct serde::de::value::U16Deserializer">U16Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.U64Deserializer.html" title="struct serde::de::value::U64Deserializer">U64Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.UsizeDeserializer.html" title="struct serde::de::value::UsizeDeserializer">UsizeDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.F32Deserializer.html" title="struct serde::de::value::F32Deserializer">F32Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.F64Deserializer.html" title="struct serde::de::value::F64Deserializer">F64Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#247-265' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.CharDeserializer.html" title="struct serde::de::value::CharDeserializer">CharDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#311-343' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.U32Deserializer.html" title="struct serde::de::value::U32Deserializer">U32Deserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#385-417' title='goto source code'>[src]</a></div><code>impl<'de, 'a, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.StrDeserializer.html" title="struct serde::de::value::StrDeserializer">StrDeserializer</a><'a, E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#456-488' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.BorrowedStrDeserializer.html" title="struct serde::de::value::BorrowedStrDeserializer">BorrowedStrDeserializer</a><'de, E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#541-573' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.StringDeserializer.html" title="struct serde::de::value::StringDeserializer">StringDeserializer</a><E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#627-662' title='goto source code'>[src]</a></div><code>impl<'de, 'a, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.CowStrDeserializer.html" title="struct serde::de::value::CowStrDeserializer">CowStrDeserializer</a><'a, E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#702-720' title='goto source code'>[src]</a></div><code>impl<'de, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.BorrowedBytesDeserializer.html" title="struct serde::de::value::BorrowedBytesDeserializer">BorrowedBytesDeserializer</a><'de, E> <span class="where fmt-newline">where<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#768-790' title='goto source code'>[src]</a></div><code>impl<'de, I, T, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.SeqDeserializer.html" title="struct serde::de::value::SeqDeserializer">SeqDeserializer</a><I, E> <span class="where fmt-newline">where<br> I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html" title="trait core::iter::iterator::Iterator">Iterator</a><Item = T>,<br> T: <a class="trait" href="../serde/de/trait.IntoDeserializer.html" title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E>,<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#887-905' title='goto source code'>[src]</a></div><code>impl<'de, A> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.SeqAccessDeserializer.html" title="struct serde::de::value::SeqAccessDeserializer">SeqAccessDeserializer</a><A> <span class="where fmt-newline">where<br> A: <a class="trait" href="../serde/de/trait.SeqAccess.html" title="trait serde::de::SeqAccess">SeqAccess</a><'de>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = A::<a class="type" href="../serde/de/trait.SeqAccess.html#associatedtype.Error" title="type serde::de::SeqAccess::Error">Error</a>;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#978-1019' title='goto source code'>[src]</a></div><code>impl<'de, I, E> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.MapDeserializer.html" title="struct serde::de::value::MapDeserializer">MapDeserializer</a><'de, I, E> <span class="where fmt-newline">where<br> I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html" title="trait core::iter::iterator::Iterator">Iterator</a>,<br> I::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::iterator::Iterator::Item">Item</a>: Pair,<br> <I::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::iterator::Iterator::Item">Item</a> as Pair>::First: <a class="trait" href="../serde/de/trait.IntoDeserializer.html" title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E>,<br> <I::<a class="type" href="https://doc.rust-lang.org/nightly/core/iter/iterator/trait.Iterator.html#associatedtype.Item" title="type core::iter::iterator::Iterator::Item">Item</a> as Pair>::Second: <a class="trait" href="../serde/de/trait.IntoDeserializer.html" title="trait serde::de::IntoDeserializer">IntoDeserializer</a><'de, E>,<br> E: <a class="trait" href="../serde/de/trait.Error.html" title="trait serde::de::Error">Error</a>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = E;</span></code></li>
|
|||
|
<li><div class='out-of-band'><a class='srclink' href='../src/serde/de/value.rs.html#1291-1309' title='goto source code'>[src]</a></div><code>impl<'de, A> Deserializer<'de> for <a class="struct" href="../serde/de/value/struct.MapAccessDeserializer.html" title="struct serde::de::value::MapAccessDeserializer">MapAccessDeserializer</a><A> <span class="where fmt-newline">where<br> A: <a class="trait" href="../serde/de/trait.MapAccess.html" title="trait serde::de::MapAccess">MapAccess</a><'de>, </span><span class="where fmt-newline"> type <a href='#associatedtype.Error' class="type">Error</a> = A::<a class="type" href="../serde/de/trait.MapAccess.html#associatedtype.Error" title="type serde::de::MapAccess::Error">Error</a>;</span></code></li>
|
|||
|
</ul><script type="text/javascript" async
|
|||
|
src="../implementors/serde/trait.Deserializer.js">
|
|||
|
</script></section>
|
|||
|
<section id='search' class="content hidden"></section>
|
|||
|
|
|||
|
<section class="footer"></section>
|
|||
|
|
|||
|
<aside id="help" class="hidden">
|
|||
|
<div>
|
|||
|
<h1 class="hidden">Help</h1>
|
|||
|
|
|||
|
<div class="shortcuts">
|
|||
|
<h2>Keyboard Shortcuts</h2>
|
|||
|
|
|||
|
<dl>
|
|||
|
<dt><kbd>?</kbd></dt>
|
|||
|
<dd>Show this help dialog</dd>
|
|||
|
<dt><kbd>S</kbd></dt>
|
|||
|
<dd>Focus the search field</dd>
|
|||
|
<dt><kbd>↑</kbd></dt>
|
|||
|
<dd>Move up in search results</dd>
|
|||
|
<dt><kbd>↓</kbd></dt>
|
|||
|
<dd>Move down in search results</dd>
|
|||
|
<dt><kbd>↹</kbd></dt>
|
|||
|
<dd>Switch tab</dd>
|
|||
|
<dt><kbd>⏎</kbd></dt>
|
|||
|
<dd>Go to active search result</dd>
|
|||
|
<dt><kbd>+</kbd></dt>
|
|||
|
<dd>Expand all sections</dd>
|
|||
|
<dt><kbd>-</kbd></dt>
|
|||
|
<dd>Collapse all sections</dd>
|
|||
|
</dl>
|
|||
|
</div>
|
|||
|
|
|||
|
<div class="infos">
|
|||
|
<h2>Search Tricks</h2>
|
|||
|
|
|||
|
<p>
|
|||
|
Prefix searches with a type followed by a colon (e.g.
|
|||
|
<code>fn:</code>) to restrict the search to a given type.
|
|||
|
</p>
|
|||
|
|
|||
|
<p>
|
|||
|
Accepted types are: <code>fn</code>, <code>mod</code>,
|
|||
|
<code>struct</code>, <code>enum</code>,
|
|||
|
<code>trait</code>, <code>type</code>, <code>macro</code>,
|
|||
|
and <code>const</code>.
|
|||
|
</p>
|
|||
|
|
|||
|
<p>
|
|||
|
Search functions by type signature (e.g.
|
|||
|
<code>vec -> usize</code> or <code>* -> vec</code>)
|
|||
|
</p>
|
|||
|
</div>
|
|||
|
</div>
|
|||
|
</aside>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
<script>
|
|||
|
window.rootPath = "../";
|
|||
|
window.currentCrate = "serde";
|
|||
|
</script>
|
|||
|
<script src="../main.js"></script>
|
|||
|
<script defer src="../search-index.js"></script>
|
|||
|
</body>
|
|||
|
</html>
|