Trait serde::Deserialize

source ·
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 Extensions

impl<'de> Deserialize<'de> for ExtensionsFork

impl<'de> Deserialize<'de> for SessionKeys

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

impl<'de, 'a, U> Deserialize<'de> for Cow<'a, str, U>where
    U: Capacity,
    'de: 'a,

impl<'de, 'a, T, U> Deserialize<'de> for Cow<'a, [T], U>where
    [T]: Beef,
    U: Capacity,
    <[T] as ToOwned>::Owned: Deserialize<'de>,

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

impl<'de, T> Deserialize<'de> for PackedOption<T>where
    T: Deserialize<'de> + ReservedValue,

impl<'de, T: EntityRef + ReservedValue> Deserialize<'de> for EntityList<T>

impl<'de, T> Deserialize<'de> for ListPool<T>where
    T: Deserialize<'de> + EntityRef + ReservedValue,

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, K, V> Deserialize<'de> for SparseMap<K, V>where
    K: EntityRef + Deserialize<'de>,
    V: SparseMapValue<K> + Deserialize<'de>,

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

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

impl<'de> Deserialize<'de> for Requirements

impl<'de> Deserialize<'de> for OpaqueMetadata

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

impl<'de> Deserialize<'de> for Weight

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

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

impl<'de> Deserialize<'de> for Ratio

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

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

impl<'de, AccountId, AssetId, AssetPair, Balance> Deserialize<'de> for AMMTransfer<AccountId, AssetId, AssetPair, Balance>where
    AccountId: Deserialize<'de>,
    AssetId: Deserialize<'de>,
    AssetPair: Deserialize<'de>,
    Balance: Deserialize<'de>,

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 TwoPointZero

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

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

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

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

impl<'de: 'a, 'a, T> Deserialize<'de> for Notification<'a, T>where
    T: Deserialize<'de>,

impl<'de: 'a, 'a, T> Deserialize<'de> for Response<'a, T>where
    T: Deserialize<'de>,

impl<'de: 'a, 'a, T> Deserialize<'de> for SubscriptionPayload<'a, T>where
    T: Deserialize<'de>,

impl<'de: 'a, 'a, T> Deserialize<'de> for SubscriptionPayloadError<'a, T>where
    T: Deserialize<'de>,

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

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

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

impl<'de> Deserialize<'de> for SessionKeys

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

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

impl<'de> Deserialize<'de> for Multiaddr

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

impl<'de, Value, Moment> Deserialize<'de> for TimestampedValue<Value, Moment>where
    Value: Deserialize<'de> + Ord + PartialOrd,
    Moment: Deserialize<'de>,

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

impl<'de, AssetId> Deserialize<'de> for AssetType<AssetId>where
    AssetId: Deserialize<'de>,

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

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

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

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

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

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 VoteThreshold

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

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

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

impl<'de, BlockNumber> Deserialize<'de> for OracleEntry<BlockNumber>where
    BlockNumber: Deserialize<'de>,

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

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

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

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

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

impl<'de> Deserialize<'de> for WeightCurveType

impl<'de, AccountId, BlockNumber> Deserialize<'de> for Pool<AccountId, BlockNumber>where
    AccountId: Deserialize<'de>,
    BlockNumber: Deserialize<'de> + AtLeast32BitUnsigned + Copy,

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

impl<'de, AccountId, Balance, BlockNumber> Deserialize<'de> for Offer<AccountId, Balance, BlockNumber>where
    AccountId: Deserialize<'de>,
    Balance: Deserialize<'de>,
    BlockNumber: Deserialize<'de>,

impl<'de, AccountId> Deserialize<'de> for Royalty<AccountId>where
    AccountId: Deserialize<'de>,

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

impl<'de, BlockHash> Deserialize<'de> for LeafProof<BlockHash>where
    BlockHash: Deserialize<'de>,

impl<'de, BlockHash> Deserialize<'de> for LeafBatchProof<BlockHash>where
    BlockHash: Deserialize<'de>,

impl<'de, CollectionType, BoundedVec> Deserialize<'de> for CollectionInfo<CollectionType, BoundedVec>where
    CollectionType: Deserialize<'de>,
    BoundedVec: Deserialize<'de>,

impl<'de, BoundedVec> Deserialize<'de> for ItemInfo<BoundedVec>where
    BoundedVec: Deserialize<'de>,

impl<'de> Deserialize<'de> for CollectionType

impl<'de> Deserialize<'de> for NftPermissions

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

impl<'de> Deserialize<'de> for PriceEntry

impl<'de> Deserialize<'de> for PriceInfo

impl<'de> Deserialize<'de> for BucketQueue

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

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

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

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

impl<'de, AccountId> Deserialize<'de> for StakerStatus<AccountId>where
    AccountId: Deserialize<'de>,

impl<'de> Deserialize<'de> for Forcing

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

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

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

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

impl<'de, AccountId, Balance> Deserialize<'de> for Proposal<AccountId, Balance>where
    AccountId: Deserialize<'de>,
    Balance: Deserialize<'de>,

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

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

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

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

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 Proof

impl<'de> Deserialize<'de> for ErasureChunk

impl<'de> Deserialize<'de> for HeadData

impl<'de> Deserialize<'de> for ValidationCode

impl<'de> Deserialize<'de> for BlockData

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

impl<'de> Deserialize<'de> for ValidatorIndex

impl<'de> Deserialize<'de> for SessionKeys

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

impl<'de> Deserialize<'de> for StatementKind

impl<'de> Deserialize<'de> for EthereumAddress

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

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

impl<'de, BlockNumber> Deserialize<'de> for HostConfiguration<BlockNumber>where
    BlockNumber: Deserialize<'de>,

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

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

impl<'de> Deserialize<'de> for ParaGenesisArgs

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

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

impl<'de> Deserialize<'de> for AssetPair

impl<'de> Deserialize<'de> for IntentionType

impl<'de, AccountId, Balance, IntentionID> Deserialize<'de> for ExchangeIntention<AccountId, Balance, IntentionID>where
    AccountId: Deserialize<'de>,
    Balance: Deserialize<'de>,
    IntentionID: Deserialize<'de>,

impl<'de> Deserialize<'de> for SessionKeys

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

impl<'de, BlockNumber, T> Deserialize<'de> for Forks<BlockNumber, T>where
    BlockNumber: Deserialize<'de> + Ord,
    T: Deserialize<'de> + Group,

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

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

impl<'de> Deserialize<'de> for EpochAuthorship

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> Deserialize<'de> for Endpoint

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

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

impl<'de> Deserialize<'de> for BlockStats

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

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

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 Public

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

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

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

impl<'de> Deserialize<'de> for FixedU64

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 AllowedSlots

impl<'de> Deserialize<'de> for Slot

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 Timestamp

impl<'de> Deserialize<'de> for Duration

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 VRFTranscriptValue

impl<'de> Deserialize<'de> for OpaqueLeaf

impl<'de> Deserialize<'de> for ElectionScore

impl<'de, AccountId> Deserialize<'de> for Support<AccountId>where
    AccountId: Deserialize<'de>,

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

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

impl<'de> Deserialize<'de> for BlockTrace

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

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

impl<'de> Deserialize<'de> for Data

impl<'de> Deserialize<'de> for TraceError

impl<'de> Deserialize<'de> for TraceBlockResponse

impl<'de, T, S: Get<u32>> Deserialize<'de> for BoundedVec<T, S>where
    T: Deserialize<'de>,

impl<'de, T, S: Get<u32>> Deserialize<'de> for WeakBoundedVec<T, S>where
    T: Deserialize<'de>,

impl<'de, Header, Extrinsic> Deserialize<'de> for Block<Header, Extrinsic>where
    Header: Deserialize<'de>,
    Extrinsic: Deserialize<'de> + MaybeSerialize,

impl<'de, Block> Deserialize<'de> for SignedBlock<Block>where
    Block: Deserialize<'de>,

impl<'de> Deserialize<'de> for Digest

impl<'a> Deserialize<'a> for DigestItem

impl<'de> Deserialize<'de> for Era

impl<'de, Number: Copy + Into<U256> + TryFrom<U256>, Hash: HashT> Deserialize<'de> for Header<Number, Hash>where
    Hash::Output: Deserialize<'de>,

impl<'a, Address: Decode, Signature: Decode, Call: Decode, Extra: SignedExtension> Deserialize<'a> for UncheckedExtrinsic<Address, Call, Signature, Extra>

impl<'de> Deserialize<'de> for ModuleError

impl<'de> Deserialize<'de> for DispatchError

impl<'de> Deserialize<'de> for RuntimeString

impl<'de> Deserialize<'de> for UintAuthorityId

impl<'de> Deserialize<'de> for TestSignature

impl<'a, Xt> Deserialize<'a> for Block<Xt>where
    Block<Xt>: Decode,

impl<'de> Deserialize<'de> for BlakeTwo256

impl<'de> Deserialize<'de> for Keccak256

impl<'de> Deserialize<'de> for InvalidTransaction

impl<'de> Deserialize<'de> for UnknownTransaction

impl<'de> Deserialize<'de> for Justifications

impl<'de> Deserialize<'de> for MultiSignature

impl<'de> Deserialize<'de> for MultiSigner

impl<'de> Deserialize<'de> for AnySignature

impl<'de> Deserialize<'de> for ModuleError

impl<'de> Deserialize<'de> for TransactionalError

impl<'de> Deserialize<'de> for DispatchError

impl<'de> Deserialize<'de> for TokenError

impl<'de> Deserialize<'de> for ArithmeticError

impl<'a> Deserialize<'a> for OpaqueExtrinsic

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 SessionKeys

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

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 OptLevel

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

impl<'de> Deserialize<'de> for FilePos

impl<'de> Deserialize<'de> for FunctionInfo

impl<'de> Deserialize<'de> for Trampoline

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

impl<'de> Deserialize<'de> for FlagValue

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

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

impl<'de> Deserialize<'de> for MemoryInitializer

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

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

impl<'de> Deserialize<'de> for TableInitializer

impl<'de> Deserialize<'de> for TableInitialization

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

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

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

impl<'de> Deserialize<'de> for FunctionType

impl<'de> Deserialize<'de> for AnyfuncIndex

impl<'de> Deserialize<'de> for ModuleTypes

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

impl<'de> Deserialize<'de> for Tunables

impl<'de> Deserialize<'de> for CompiledModuleInfo

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

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

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

impl<'de> Deserialize<'de> for DefinedFuncIndex

impl<'de> Deserialize<'de> for DefinedTableIndex

impl<'de> Deserialize<'de> for DefinedMemoryIndex

impl<'de> Deserialize<'de> for DefinedGlobalIndex

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 TagIndex

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 Memory

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

impl<'de> Deserialize<'de> for SessionKeys

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