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 NoopPathExtractor

impl<'de> Deserialize<'de> for FilePathExtractor

impl<'de> Deserialize<'de> for NoopExtractor

impl<'de, K, V, S> Deserialize<'de> for IndexMap<K, V, S>where
    K: Deserialize<'de> + Eq + Hash,
    V: Deserialize<'de>,
    S: Default + BuildHasher,

impl<'de, T, S> Deserialize<'de> for IndexSet<T, S>where
    T: Deserialize<'de> + Eq + Hash,
    S: Default + BuildHasher,

impl<'de> Deserialize<'de> for Algorithm

impl<'de> Deserialize<'de> for Header

impl<'de> Deserialize<'de> for PublicKeyUse

impl<'de> Deserialize<'de> for KeyOperations

impl<'de> Deserialize<'de> for CommonParameters

impl<'de> Deserialize<'de> for EllipticCurve

impl<'de> Deserialize<'de> for RSAKeyType

impl<'de> Deserialize<'de> for RSAKeyParameters

impl<'de> Deserialize<'de> for OctetKeyType

impl<'de> Deserialize<'de> for OctetKeyParameters

impl<'de> Deserialize<'de> for OctetKeyPairType

impl<'de> Deserialize<'de> for AlgorithmParameters

impl<'de> Deserialize<'de> for Jwk

impl<'de> Deserialize<'de> for JwkSet

impl<'de> Deserialize<'de> for Components

impl<'de> Deserialize<'de> for Contact

impl<'de> Deserialize<'de> for Discriminator

impl<'de> Deserialize<'de> for Encoding

impl<'de> Deserialize<'de> for Example

impl<'de> Deserialize<'de> for Header

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

impl<'de> Deserialize<'de> for License

impl<'de> Deserialize<'de> for Link

impl<'de> Deserialize<'de> for LinkOperation

impl<'de> Deserialize<'de> for MediaType

impl<'de> Deserialize<'de> for OpenAPI

impl<'de> Deserialize<'de> for Operation

impl<'de> Deserialize<'de> for ParameterData

impl<'de> Deserialize<'de> for Parameter

impl<'de> Deserialize<'de> for PathStyle

impl<'de> Deserialize<'de> for QueryStyle

impl<'de> Deserialize<'de> for CookieStyle

impl<'de> Deserialize<'de> for HeaderStyle

impl<'de> Deserialize<'de> for PathItem

impl<'de> Deserialize<'de> for Paths

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

impl<'de> Deserialize<'de> for RequestBody

impl<'de> Deserialize<'de> for Responses

impl<'de> Deserialize<'de> for Response

impl<'de> Deserialize<'de> for SchemaData

impl<'de> Deserialize<'de> for Schema

impl<'de> Deserialize<'de> for SchemaKind

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

impl<'de> Deserialize<'de> for AnySchema

impl<'de> Deserialize<'de> for StringType

impl<'de> Deserialize<'de> for NumberType

impl<'de> Deserialize<'de> for IntegerType

impl<'de> Deserialize<'de> for ObjectType

impl<'de> Deserialize<'de> for ArrayType

impl<'de> Deserialize<'de> for NumberFormat

impl<'de> Deserialize<'de> for IntegerFormat

impl<'de> Deserialize<'de> for StringFormat

impl<'de> Deserialize<'de> for SecurityScheme

impl<'de> Deserialize<'de> for APIKeyLocation

impl<'de> Deserialize<'de> for OAuth2Flows

impl<'de> Deserialize<'de> for OAuth2Flow

impl<'de> Deserialize<'de> for Server

impl<'de> Deserialize<'de> for ServerVariable

impl<'de> Deserialize<'de> for StatusCode

impl<'de> Deserialize<'de> for Tag

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

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

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

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

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