pub trait Deserialize<'de> {
    fn deserialize<D>(
        deserializer: D
    ) -> Result<Self, <D as Deserializer<'de>>::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 OpaqueMetadata

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

impl<'de> Deserialize<'de> for DispatchClass

impl<'de> Deserialize<'de> for GenesisConfig

impl<'de> Deserialize<'de> for PublicKey

impl<'de, T: Config<I>, I: 'static> Deserialize<'de> for GenesisConfig<T, I>

impl<'de, T: Config<I>, I: 'static> Deserialize<'de> for GenesisConfig<T, I>

impl<'de, T: Config> Deserialize<'de> for GenesisConfig<T>

impl<'de, Balance> Deserialize<'de> for InclusionFee<Balance> where
    Balance: Deserialize<'de>, 

impl<'de, Balance> Deserialize<'de> for FeeDetails<Balance> where
    Balance: Deserialize<'de>,
    Balance: Default

impl<'de, Balance> Deserialize<'de> for RuntimeDispatchInfo<Balance> where
    Balance: FromStr

impl<'de> Deserialize<'de> for GenesisConfig

impl<'de> Deserialize<'de> for GenesisConfig

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

impl<'de> Deserialize<'de> for U128

impl<'de> Deserialize<'de> for U256

impl<'de> Deserialize<'de> for U512

impl<'de> Deserialize<'de> for H128

impl<'de> Deserialize<'de> for H160

impl<'de> Deserialize<'de> for H256

impl<'de> Deserialize<'de> for H512

impl<'de, T> Deserialize<'de> for UntrackedSymbol<T>

impl<'de> Deserialize<'de> for PortableRegistry

impl<'de, T: Form> Deserialize<'de> for TypeDefComposite<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for Field<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for Path<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for TypeDefVariant<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for Variant<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for Type<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for TypeParameter<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for TypeDef<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de> Deserialize<'de> for TypeDefPrimitive

impl<'de, T: Form> Deserialize<'de> for TypeDefArray<T> where
    T::Type: Deserialize<'de>, 

impl<'de, T: Form> Deserialize<'de> for TypeDefTuple<T> where
    T::Type: DeserializeOwned,
    T::String: DeserializeOwned

impl<'de, T: Form> Deserialize<'de> for TypeDefSequence<T> where
    T::Type: Deserialize<'de>, 

impl<'de, T: Form> Deserialize<'de> for TypeDefCompact<T> where
    T::Type: Deserialize<'de>, 

impl<'de, T: Form> Deserialize<'de> for TypeDefBitSequence<T> where
    T::Type: Deserialize<'de>,
    T::Type: Deserialize<'de>, 

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

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

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

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for FixedI64

impl<'de> Deserialize<'de> for FixedI128

impl<'de> Deserialize<'de> for FixedU128

impl<'de> Deserialize<'de> for Percent

impl<'de> Deserialize<'de> for PerU16

impl<'de> Deserialize<'de> for Permill

impl<'de> Deserialize<'de> for Perbill

impl<'de> Deserialize<'de> for Perquintill

impl<'de> Deserialize<'de> for AccountId32

impl<'de> Deserialize<'de> for KeyTypeId

impl<'de> Deserialize<'de> for CryptoTypeId

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for Signature

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for Signature

impl<'de> Deserialize<'de> for StorageKind

impl<'de> Deserialize<'de> for Public

impl<'de> Deserialize<'de> for Signature

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

impl<'de> Deserialize<'de> for OpaquePeerId

impl<'de> Deserialize<'de> for StorageKey

impl<'de> Deserialize<'de> for PrefixedStorageKey

impl<'de> Deserialize<'de> for StorageData

impl<'de, Hash> Deserialize<'de> for StorageChangeSet<Hash> where
    Hash: Deserialize<'de>, 

impl<'de> Deserialize<'de> for RuntimeVersion

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>,