pub trait Deserialize<'de>: Sized {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: Deserializer<'de>
; }
Expand description

A data structure that can be deserialized from any data format supported by Serde.

Serde provides Deserialize implementations for many Rust primitive and standard library types. The complete list is here. All of these can be deserialized using Serde out of the box.

Additionally, Serde provides a procedural macro called serde_derive to automatically generate Deserialize implementations for structs and enums in your program. See the derive section of the manual for how to use this.

In rare cases it may be necessary to implement Deserialize manually for some type in your program. See the Implementing Deserialize section of the manual for more about this.

Third-party crates may provide Deserialize implementations for types that they expose. For example the linked-hash-map crate provides a LinkedHashMap<K, V> type that is deserializable by Serde because the crate provides an implementation of Deserialize for it.

Lifetime

The 'de lifetime of this trait is the lifetime of data that may be borrowed by Self when deserialized. See the page Understanding deserializer lifetimes for a more detailed explanation of these lifetimes.

Required Methods

Deserialize this value from the given Serde deserializer.

See the Implementing Deserialize section of the manual for more information about how to implement this method.

Implementations on Foreign Types

Implementors

impl<'de> Deserialize<'de> for RustDocFingerprint

impl<'de> Deserialize<'de> for FutureBreakageItem

impl<'de> Deserialize<'de> for Diagnostic

impl<'de> Deserialize<'de> for OnDiskReports

impl<'de> Deserialize<'de> for RustdocExternMode

impl<'de> Deserialize<'de> for RustdocExternMap where
    RustdocExternMap: Default

impl<'de> Deserialize<'de> for Edition

impl<'de> Deserialize<'de> for CliUnstable where
    CliUnstable: Default

impl<'de> Deserialize<'de> for PackageId

impl<'de> Deserialize<'de> for PackageIdSpec

impl<'de> Deserialize<'de> for Strip

impl<'de> Deserialize<'de> for EncodableResolve

impl<'de> Deserialize<'de> for EncodableDependency

impl<'de> Deserialize<'de> for EncodablePackageId

impl<'de> Deserialize<'de> for SourceId

impl<'de> Deserialize<'de> for VersionControl

impl<'de> Deserialize<'de> for RegistryConfig

impl<'de: 'a, 'a> Deserialize<'de> for RegistryPackage<'a>

impl<'de, T> Deserialize<'de> for Value<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for Definition

impl<'de> Deserialize<'de> for ConfigRelativePath

impl<'de> Deserialize<'de> for PathAndArgs

impl<'de> Deserialize<'de> for TargetCfgConfig

impl<'de> Deserialize<'de> for CargoHttpConfig

impl<'de> Deserialize<'de> for SslVersionConfig

impl<'de> Deserialize<'de> for CargoNetConfig

impl<'de> Deserialize<'de> for CargoBuildConfig

impl<'de> Deserialize<'de> for BuildTargetConfig

impl<'de> Deserialize<'de> for ProgressConfig

impl<'de> Deserialize<'de> for ProgressWhen

impl<'de> Deserialize<'de> for EnvConfigValue

impl<'de> Deserialize<'de> for StringList

impl<'de> Deserialize<'de> for UnmergedStringList

impl<'de> Deserialize<'de> for Message

impl<'de> Deserialize<'de> for InternedString

impl<'de, P: Deserialize<'de> + Clone> Deserialize<'de> for TomlDependency<P>

impl<'de, P> Deserialize<'de> for IntermediateDependency<P> where
    P: Deserialize<'de>, 

impl<'de, P: Clone> Deserialize<'de> for DetailedTomlDependency<P> where
    P: Deserialize<'de>, 

impl<'de> Deserialize<'de> for TomlManifest

impl<'de> Deserialize<'de> for TomlProfiles

impl<'de> Deserialize<'de> for TomlOptLevel

impl<'de> Deserialize<'de> for U32OrBool

impl<'de> Deserialize<'de> for TomlProfile where
    TomlProfile: Default

impl<'de> Deserialize<'de> for ProfilePackageSpec

impl<'de> Deserialize<'de> for StringOrVec

impl<'de> Deserialize<'de> for StringOrBool

impl<'de> Deserialize<'de> for VecStringOrBool

impl<'de, T> Deserialize<'de> for MaybeWorkspace<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for TomlWorkspaceField

impl<'de> Deserialize<'de> for TomlProject

impl<'de> Deserialize<'de> for TomlWorkspace

impl<'de> Deserialize<'de> for InheritableFields

impl<'de> Deserialize<'de> for Dependency

impl<'de> Deserialize<'de> for DependencyInfoV1

impl<'de> Deserialize<'de> for DependencyInfoImpl

impl<'de> Deserialize<'de> for Platform

impl<'de> Deserialize<'de> for Crate

impl<'de> Deserialize<'de> for User

impl<'de> Deserialize<'de> for Bitness

impl<'de> Deserialize<'de> for Info

impl<'de> Deserialize<'de> for Type

impl<'de> Deserialize<'de> for Version

impl<'de> Deserialize<'de> for Diagnostic

impl<'de> Deserialize<'de> for DiagnosticSpan

impl<'de> Deserialize<'de> for Applicability

impl<'de> Deserialize<'de> for DiagnosticSpanLine

impl<'de> Deserialize<'de> for DiagnosticCode

impl<'de> Deserialize<'de> for Version

impl<'de> Deserialize<'de> for VersionReq

impl<'de> Deserialize<'de> for Comparator

impl<'de, T: Deserialize<'de>> Deserialize<'de> for Tagged<T>

impl<'de> Deserialize<'de> for Value

impl<'de> Deserialize<'de> for Map<String, Value>

impl<'de> Deserialize<'de> for Value

impl<'de> Deserialize<'de> for Number

impl<'de: 'a, 'a> Deserialize<'de> for &'a RawValue

impl<'de> Deserialize<'de> for Box<RawValue>

impl<'de> Deserialize<'de> for Datetime

impl<'de> Deserialize<'de> for InternalString

impl<'de> Deserialize<'de> for Map<String, Value>

impl<'de> Deserialize<'de> for Value