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 SessionKeys

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

impl<'de> Deserialize<'de> for Characters

impl<'de> Deserialize<'de> for ForWhat

impl<'de, T, A, B> Deserialize<'de> for AnagolayRecord<T, A, B> where
    T: Deserialize<'de>,
    A: Deserialize<'de>,
    B: Deserialize<'de>, 

impl<'de, T: AnagolayStructureData, U: AnagolayStructureExtra> Deserialize<'de> for AnagolayStructure<T, U> where
    T: Deserialize<'de>,
    U: Deserialize<'de>, 

impl<'de, T: ArtifactType> Deserialize<'de> for AnagolayArtifactStructure<T> where
    T: Deserialize<'de>, 

impl<'de, T: ArtifactType> Deserialize<'de> for AnagolayVersionData<T> where
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for WasmArtifactSubType

impl<'de> Deserialize<'de> for StackMap

impl<'de> Deserialize<'de> for Reloc

impl<'de> Deserialize<'de> for AtomicRmwOp

impl<'de> Deserialize<'de> for StackSlot

impl<'de> Deserialize<'de> for JumpTable

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

impl<'de> Deserialize<'de> for AbiParam

impl<'de> Deserialize<'de> for ArgumentExtension

impl<'de> Deserialize<'de> for ArgumentPurpose

impl<'de> Deserialize<'de> for V128Imm

impl<'de> Deserialize<'de> for LibCall

impl<'de> Deserialize<'de> for SourceLoc

impl<'de> Deserialize<'de> for StackSlotKind

impl<'de> Deserialize<'de> for StackSlotData

impl<'de> Deserialize<'de> for StackLayoutInfo

impl<'de> Deserialize<'de> for StackSlots

impl<'de> Deserialize<'de> for TrapCode

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

impl<'de> Deserialize<'de> for ValueLoc

impl<'de> Deserialize<'de> for ArgumentLoc

impl<'de> Deserialize<'de> for ValueLabel

impl<'de> Deserialize<'de> for UnwindInfo

impl<'de> Deserialize<'de> for UnwindInfo

impl<'de> Deserialize<'de> for UnwindInfo

impl<'de, Reg> Deserialize<'de> for UnwindCode<Reg> where
    Reg: Deserialize<'de>, 

impl<'de, Reg> Deserialize<'de> for UnwindInfo<Reg> where
    Reg: Deserialize<'de>, 

impl<'de> Deserialize<'de> for CallConv

impl<'de> Deserialize<'de> for ValueLocRange

impl<'de, K, V> Deserialize<'de> for SecondaryMap<K, V> where
    K: EntityRef,
    V: Clone + Deserialize<'de>, 

impl<'de, K, V> Deserialize<'de> for PrimaryMap<K, V> where
    K: EntityRef,
    V: Deserialize<'de>, 

impl<'de> Deserialize<'de> for WasmType

impl<'de> Deserialize<'de> for WasmFuncType

impl<'de> Deserialize<'de> for FuncIndex

impl<'de> Deserialize<'de> for TableIndex

impl<'de> Deserialize<'de> for GlobalIndex

impl<'de> Deserialize<'de> for MemoryIndex

impl<'de> Deserialize<'de> for SignatureIndex

impl<'de> Deserialize<'de> for DataIndex

impl<'de> Deserialize<'de> for ElemIndex

impl<'de> Deserialize<'de> for TypeIndex

impl<'de> Deserialize<'de> for ModuleIndex

impl<'de> Deserialize<'de> for InstanceIndex

impl<'de> Deserialize<'de> for EventIndex

impl<'de> Deserialize<'de> for ModuleTypeIndex

impl<'de> Deserialize<'de> for InstanceTypeIndex

impl<'de> Deserialize<'de> for EntityIndex

impl<'de> Deserialize<'de> for EntityType

impl<'de> Deserialize<'de> for Global

impl<'de> Deserialize<'de> for GlobalInit

impl<'de> Deserialize<'de> for Table

impl<'de> Deserialize<'de> for TableElementType

impl<'de> Deserialize<'de> for Memory

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

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

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

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 ClientResponse

impl<'a> Deserialize<'a> for ErrorCode

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

impl<'de> Deserialize<'de> for Id

impl<'de> Deserialize<'de> for Params

impl<'de> Deserialize<'de> for MethodCall

impl<'de> Deserialize<'de> for Notification

impl<'de> Deserialize<'de> for Call

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

impl<'de> Deserialize<'de> for Success

impl<'de> Deserialize<'de> for Failure

impl<'de> Deserialize<'de> for Output

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

impl<'a> Deserialize<'a> for Version

impl<'de> Deserialize<'de> for OperationData

impl<'de> Deserialize<'de> for OperationExtra

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

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

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

impl<'de> Deserialize<'de> for GenesisConfig where
    AuthorityList: DeserializeOwned

impl<'de, T: Config> Deserialize<'de> for GenesisConfig<T> where
    Vec<(T::AccountId, T::ValidatorId, T::Keys)>: DeserializeOwned

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

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 Multiaddr

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, BlockNumber: Ord, T: Group> Deserialize<'de> for Forks<BlockNumber, T> where
    BlockNumber: Deserialize<'de>,
    T: Deserialize<'de>, 

impl<'de> Deserialize<'de> for MultiaddrWithPeerId

impl<'de> Deserialize<'de> for NetworkState

impl<'de> Deserialize<'de> for Peer

impl<'de> Deserialize<'de> for NotConnectedPeer

impl<'de> Deserialize<'de> for PeerEndpoint

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

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

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

impl<'de, Hash, Number> Deserialize<'de> for PeerInfo<Hash, Number> where
    Hash: Deserialize<'de>,
    Number: Deserialize<'de>, 

impl<'de> Deserialize<'de> for NodeRole

impl<'de, Number> Deserialize<'de> for SyncState<Number> where
    Number: Deserialize<'de>, 

impl<'de> Deserialize<'de> for TelemetryEndpoints

impl<'d> Deserialize<'d> for RistrettoBoth

impl<'d> Deserialize<'d> for MiniSecretKey

impl<'d> Deserialize<'d> for SecretKey

impl<'d> Deserialize<'d> for PublicKey

impl<'d> Deserialize<'d> for Keypair

impl<'d> Deserialize<'d> for Signature

impl<'d> Deserialize<'d> for VRFOutput

impl<'d> Deserialize<'d> for VRFProof

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

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

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

impl<'de> Deserialize<'de> for ChainType

impl<'de> Deserialize<'de> for ImportedAux

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 Public

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

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

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

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

impl<'de> Deserialize<'de> for VRFTranscriptValue

impl<'de> Deserialize<'de> for VRFSignature

impl<'de> Deserialize<'de> for NumberOrHex

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

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, Hash, BlockHash> Deserialize<'de> for TransactionStatus<Hash, BlockHash> where
    Hash: Deserialize<'de>,
    BlockHash: 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>, 

impl<'de> Deserialize<'de> for CacheConfig

impl<'de> Deserialize<'de> for FunctionAddressMap

impl<'de> Deserialize<'de> for CompiledFunction

impl<'de> Deserialize<'de> for Relocation

impl<'de> Deserialize<'de> for RelocationTarget

impl<'de> Deserialize<'de> for TrapInformation

impl<'de> Deserialize<'de> for StackMapInformation

impl<'de> Deserialize<'de> for TableElements

impl<'de> Deserialize<'de> for MemoryStyle

impl<'de> Deserialize<'de> for MemoryPlan

impl<'de> Deserialize<'de> for TableStyle

impl<'de> Deserialize<'de> for TablePlan

impl<'de> Deserialize<'de> for ModuleType

impl<'de> Deserialize<'de> for Module

impl<'de> Deserialize<'de> for Initializer

impl<'de> Deserialize<'de> for TypeTables

impl<'de> Deserialize<'de> for ModuleSignature

impl<'de> Deserialize<'de> for InstanceSignature

impl<'de> Deserialize<'de> for TypeTables

impl<'de> Deserialize<'de> for WorkflowSegment

impl<'de> Deserialize<'de> for WorkflowData

impl<'de> Deserialize<'de> for WorkflowExtra

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