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

This impl requires the "rc" Cargo feature of Serde. The resulting Weak<T> has a reference count of 0 and cannot be upgraded.

This impl requires the "rc" Cargo feature of Serde. The resulting Weak<T> has a reference count of 0 and cannot be upgraded.

This impl requires the "rc" Cargo feature of Serde.

Deserializing a data structure containing Rc will not attempt to deduplicate Rc references to the same data. Every deserialized Rc will end up with a strong count of 1.

This impl requires the "rc" Cargo feature of Serde.

Deserializing a data structure containing Arc will not attempt to deduplicate Arc references to the same data. Every deserialized Arc will end up with a strong count of 1.

Implementors

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

impl<'de> Deserialize<'de> for PoolConfig

impl<'de> Deserialize<'de> for Timeouts

impl<'de> Deserialize<'de> for PoolConfig

impl<'de> Deserialize<'de> for CodeId

impl<'de> Deserialize<'de> for DebugId

impl<'de> Deserialize<'de> for Exception

impl<'de> Deserialize<'de> for Error

impl<'de> Deserialize<'de> for Cause

impl<'de> Deserialize<'de> for Bytes

impl<'de> Deserialize<'de> for Conflicts

impl<'de> Deserialize<'de> for DefaultOperator

impl<'de> Deserialize<'de> for ExpandWildcards

impl<'de> Deserialize<'de> for Format

impl<'de> Deserialize<'de> for Health

impl<'de> Deserialize<'de> for Level

impl<'de> Deserialize<'de> for OpType

impl<'de> Deserialize<'de> for Refresh

impl<'de> Deserialize<'de> for SearchType

impl<'de> Deserialize<'de> for Size

impl<'de> Deserialize<'de> for SuggestMode

impl<'de> Deserialize<'de> for Time

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

impl<'de> Deserialize<'de> for VersionType

impl<'de> Deserialize<'de> for WaitForEvents

impl<'de> Deserialize<'de> for WaitForStatus

impl<'de> Deserialize<'de> for TrackTotalHits

impl<'de> Deserialize<'de> for SourceFilter

impl<'de> Deserialize<'de> for Slices

impl<'de> Deserialize<'de> for Metadata

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

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

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

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

impl<'de> Deserialize<'de> for AnonymousIp

impl<'de> Deserialize<'de> for DensityIncome

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

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

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

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

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

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

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

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

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

impl<'de> Deserialize<'de> for Traits

impl<'de> Deserialize<'de> for AttachmentMeta

impl<'de> Deserialize<'de> for AdmSuggestion

impl<'de> Deserialize<'de> for TracingJsonEvent

impl<'de> Deserialize<'de> for LoggingSettings

impl<'de> Deserialize<'de> for LogFormat

impl<'de> Deserialize<'de> for DirectiveWrapper

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

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

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

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

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

impl<'de> Deserialize<'de> for FixedConfig

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

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

impl<'de> Deserialize<'de> for Settings

impl<'de> Deserialize<'de> for HttpSettings

impl<'de> Deserialize<'de> for CacheType

impl<'de> Deserialize<'de> for AdmRsSettings

impl<'de> Deserialize<'de> for WikiFruitSettings

impl<'de> Deserialize<'de> for RedisSettings

impl<'de> Deserialize<'de> for LocationSettings

impl<'de> Deserialize<'de> for MetricsSettings

impl<'de> Deserialize<'de> for SentrySettings

impl<'de> Deserialize<'de> for ProviderSettings

impl<'de> Deserialize<'de> for Proportion

impl<'de> Deserialize<'de> for Suggestion

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

impl<'de> Deserialize<'de> for SuggestQuery

impl<'de> Deserialize<'de> for WikipediaDocument

impl<'de> Deserialize<'de> for Record

impl<'de> Deserialize<'de> for AttachmentMetadata

impl<'de> Deserialize<'de> for Collection

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

impl<'de> Deserialize<'de> for PrettyConfig

impl<'de> Deserialize<'de> for Map

impl<'de> Deserialize<'de> for Extensions

impl<'de> Deserialize<'de> for Auth

impl<'de> Deserialize<'de> for Dsn

impl<'de> Deserialize<'de> for ProjectId

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

impl<'de> Deserialize<'de> for LogEntry

impl<'de> Deserialize<'de> for Frame

impl<'de> Deserialize<'de> for TemplateInfo

impl<'de> Deserialize<'de> for Stacktrace

impl<'de> Deserialize<'de> for ThreadId

impl<'de> Deserialize<'de> for Addr

impl<'de> Deserialize<'de> for RegVal

impl<'de> Deserialize<'de> for Thread

impl<'de> Deserialize<'de> for CError

impl<'de> Deserialize<'de> for MachException

impl<'de> Deserialize<'de> for PosixSignal

impl<'de> Deserialize<'de> for MechanismMeta

impl<'de> Deserialize<'de> for Mechanism

impl<'de> Deserialize<'de> for Exception

impl<'de> Deserialize<'de> for Level

impl<'de> Deserialize<'de> for Breadcrumb

impl<'de> Deserialize<'de> for IpAddress

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

impl<'de> Deserialize<'de> for Request

impl<'de> Deserialize<'de> for SystemSdkInfo

impl<'de> Deserialize<'de> for DebugImage

impl<'de> Deserialize<'de> for AppleDebugImage

impl<'de> Deserialize<'de> for SymbolicDebugImage

impl<'de> Deserialize<'de> for ProguardDebugImage

impl<'de> Deserialize<'de> for WasmDebugImage

impl<'de> Deserialize<'de> for DebugMeta

impl<'de> Deserialize<'de> for ClientSdkInfo

impl<'de> Deserialize<'de> for ClientSdkPackage

impl<'de> Deserialize<'de> for Context

impl<'de> Deserialize<'de> for Orientation

impl<'de> Deserialize<'de> for DeviceContext

impl<'de> Deserialize<'de> for OsContext

impl<'de> Deserialize<'de> for RuntimeContext

impl<'de> Deserialize<'de> for AppContext

impl<'de> Deserialize<'de> for BrowserContext

impl<'de> Deserialize<'de> for GpuContext

impl<'de> Deserialize<'de> for SpanId

impl<'de> Deserialize<'de> for TraceId

impl<'de> Deserialize<'de> for TraceContext

impl<'de, 'a> Deserialize<'de> for Event<'a>

impl<'de> Deserialize<'de> for Span

impl<'de> Deserialize<'de> for SpanStatus

impl<'de, 'a> Deserialize<'de> for Transaction<'a>

impl<'de> Deserialize<'de> for SessionStatus

impl<'de, 'a> Deserialize<'de> for SessionAttributes<'a>

impl<'de, 'a> Deserialize<'de> for SessionUpdate<'a>

impl<'de, 'a> Deserialize<'de> for SessionAggregates<'a>

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

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

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

impl<'de, T, U> Deserialize<'de> for DeserializeAsWrap<T, U> where
    U: DeserializeAs<'de, T>, 

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

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

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

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

impl<'de> Deserialize<'de> for MozLogMessage

impl<'de, S> Deserialize<'de> for Host<S> where
    S: Deserialize<'de>, 

impl<'de> Deserialize<'de> for Url

impl<'de> Deserialize<'de> for Uuid