Trait serde::Serialize

source ·
pub trait Serialize {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer
; }
Expand description

A data structure that can be serialized into any data format supported by Serde.

Serde provides Serialize implementations for many Rust primitive and standard library types. The complete list is here. All of these can be serialized using Serde out of the box.

Additionally, Serde provides a procedural macro called serde_derive to automatically generate Serialize 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 Serialize manually for some type in your program. See the Implementing Serialize section of the manual for more about this.

Third-party crates may provide Serialize implementations for types that they expose. For example the linked-hash-map crate provides a LinkedHashMap<K, V> type that is serializable by Serde because the crate provides an implementation of Serialize for it.

Required Methods§

Serialize this value into the given Serde serializer.

See the Implementing Serialize section of the manual for more information about how to implement this method.

use serde::ser::{Serialize, SerializeStruct, Serializer};

struct Person {
    name: String,
    age: u8,
    phones: Vec<String>,
}

// This is what #[derive(Serialize)] would generate.
impl Serialize for Person {
    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
    where
        S: Serializer,
    {
        let mut s = serializer.serialize_struct("Person", 3)?;
        s.serialize_field("name", &self.name)?;
        s.serialize_field("age", &self.age)?;
        s.serialize_field("phones", &self.phones)?;
        s.end()
    }
}

Implementations on Foreign Types§

Implementors§

impl<T, U> Serialize for Cow<'_, T, U>where
    T: Beef + Serialize + ?Sized,
    U: Capacity,

impl Serialize for Public

impl<T> Serialize for PackedOption<T>where
    T: Serialize + ReservedValue,

impl<T> Serialize for ListPool<T>where
    T: Serialize + EntityRef + ReservedValue,

impl<K, V> Serialize for SecondaryMap<K, V>where
    K: EntityRef,
    V: Clone + PartialEq + Serialize,

impl<K, V> Serialize for PrimaryMap<K, V>where
    K: EntityRef,
    V: Serialize,

impl<K, V> Serialize for SparseMap<K, V>where
    K: EntityRef + Serialize,
    V: SparseMapValue<K> + Serialize,

impl<T: Form> Serialize for ExtrinsicMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for SignedExtensionMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for PalletMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for PalletStorageMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for StorageEntryMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for StorageEntryType<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for PalletCallMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for PalletEventMetadata<T>where
    T::Type: Serialize,

impl<T: Form> Serialize for PalletConstantMetadata<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for PalletErrorMetadata<T>where
    T::Type: Serialize,

impl<T> Serialize for WrapperOpaque<T>where
    T: Serialize,

impl Serialize for Weight

impl Serialize for Phase

impl<E, T> Serialize for EventRecord<E, T>where
    E: Serialize + Parameter + Member,
    T: Serialize,

impl Serialize for Ratio

impl<Balance> Serialize for Volume<Balance>where
    Balance: Serialize,

impl<Balance> Serialize for Liquidity<Balance>where
    Balance: Serialize,

impl<AccountId, AssetId, AssetPair, Balance> Serialize for AMMTransfer<AccountId, AssetId, AssetPair, Balance>where
    AccountId: Serialize,
    AssetId: Serialize,
    AssetPair: Serialize,
    Balance: Serialize,

impl<K, V, S> Serialize for IndexMap<K, V, S>where
    K: Serialize + Hash + Eq,
    V: Serialize,
    S: BuildHasher,

impl<T, S> Serialize for IndexSet<T, S>where
    T: Serialize + Hash + Eq,
    S: BuildHasher,

impl<'a> Serialize for ParamsSer<'a>

impl<'a> Serialize for SubscriptionId<'a>

impl<'a> Serialize for Id<'a>

impl<'a> Serialize for Request<'a>

impl<'a, T> Serialize for Notification<'a, T>where
    T: Serialize,

impl<'a> Serialize for RequestSer<'a>

impl<'a> Serialize for NotificationSer<'a>

impl<'a, T> Serialize for Response<'a, T>where
    T: Serialize,

impl<'a, T> Serialize for SubscriptionPayload<'a, T>where
    T: Serialize,

impl<'a, T> Serialize for SubscriptionPayloadError<'a, T>where
    T: Serialize,

impl<'a> Serialize for ErrorResponse<'a>

impl<'a> Serialize for ErrorObject<'a>

impl<T: Config> Serialize for GenesisConfig<T>

impl<Value, Moment> Serialize for TimestampedValue<Value, Moment>where
    Value: Serialize + Ord + PartialOrd,
    Moment: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<AssetId> Serialize for AssetType<AssetId>where
    AssetId: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

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

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

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

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

impl<BlockNumber> Serialize for OracleEntry<BlockNumber>where
    BlockNumber: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

impl<AccountId, BlockNumber> Serialize for Pool<AccountId, BlockNumber>where
    AccountId: Serialize,
    BlockNumber: Serialize + AtLeast32BitUnsigned + Copy,

impl<AccountId, Balance, BlockNumber> Serialize for Offer<AccountId, Balance, BlockNumber>where
    AccountId: Serialize,
    Balance: Serialize,
    BlockNumber: Serialize,

impl<AccountId> Serialize for Royalty<AccountId>where
    AccountId: Serialize,

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

impl<BlockHash> Serialize for LeafProof<BlockHash>where
    BlockHash: Serialize,

impl<BlockHash> Serialize for LeafBatchProof<BlockHash>where
    BlockHash: Serialize,

impl<CollectionType, BoundedVec> Serialize for CollectionInfo<CollectionType, BoundedVec>where
    CollectionType: Serialize,
    BoundedVec: Serialize,

impl<BoundedVec> Serialize for ItemInfo<BoundedVec>where
    BoundedVec: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

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

impl<T: Config> Serialize for GenesisConfig<T>

impl<AccountId> Serialize for StakerStatus<AccountId>where
    AccountId: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<T: Config> Serialize for GenesisConfig<T>

impl<Balance> Serialize for InclusionFee<Balance>where
    Balance: Serialize,

impl<Balance> Serialize for FeeDetails<Balance>where
    Balance: Serialize,

impl<Balance> Serialize for RuntimeDispatchInfo<Balance>where
    Balance: Display,

impl<AccountId, Balance> Serialize for Proposal<AccountId, Balance>where
    AccountId: Serialize,
    Balance: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<T> Serialize for Compact<T>where
    T: Serialize,

impl Serialize for Proof

impl Serialize for Id

impl<T: Config> Serialize for GenesisConfig<T>

impl<BlockNumber> Serialize for HostConfiguration<BlockNumber>where
    BlockNumber: Serialize,

impl<T: Config> Serialize for GenesisConfig<T>

impl<AccountId, Balance, IntentionID> Serialize for ExchangeIntention<AccountId, Balance, IntentionID>where
    AccountId: Serialize,
    Balance: Serialize,
    IntentionID: Serialize,

impl<BlockNumber, T> Serialize for Forks<BlockNumber, T>where
    BlockNumber: Serialize + Ord,
    T: Serialize + Group,

impl Serialize for Peer

impl<Hash> Serialize for ExtrinsicOrHash<Hash>where
    Hash: Serialize,

impl<Hash> Serialize for ReadProof<Hash>where
    Hash: Serialize,

impl Serialize for Health

impl<Hash, Number> Serialize for PeerInfo<Hash, Number>where
    Hash: Serialize,
    Number: Serialize,

impl<Number> Serialize for SyncState<Number>where
    Number: Serialize,

impl<Block: BlockT> Serialize for LightSyncState<Block>

impl Serialize for Values

impl<Hash, BlockHash> Serialize for TransactionStatus<Hash, BlockHash>where
    Hash: Serialize,
    BlockHash: Serialize,

impl<T> Serialize for UntrackedSymbol<T>

impl<'a, T> Serialize for Symbol<'a, T>

impl<T> Serialize for Interner<T>where
    T: Serialize,

impl<T: Form> Serialize for TypeDefComposite<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for Field<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for Path<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for TypeDefVariant<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for Variant<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for Type<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for TypeParameter<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for TypeDef<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for TypeDefArray<T>where
    T::Type: Serialize,

impl<T: Form> Serialize for TypeDefTuple<T>where
    T::Type: Serialize,
    T::String: Serialize,

impl<T: Form> Serialize for TypeDefSequence<T>where
    T::Type: Serialize,

impl<T: Form> Serialize for TypeDefCompact<T>where
    T::Type: Serialize,

impl<T: Form> Serialize for TypeDefBitSequence<T>where
    T::Type: Serialize,

impl Serialize for Value

impl Serialize for Number

impl Serialize for Public

impl Serialize for Public

impl Serialize for Public

impl Serialize for PerU16

impl Serialize for Slot

impl Serialize for Public

impl Serialize for Public

impl Serialize for Public

impl Serialize for Bytes

impl<N> Serialize for ScheduledChange<N>where
    N: Serialize,

impl<N> Serialize for ConsensusLog<N>where
    N: Serialize + Codec,

impl<AccountId> Serialize for Support<AccountId>where
    AccountId: Serialize,

impl<T> Serialize for ListOrValue<T>where
    T: Serialize,

impl Serialize for Event

impl Serialize for Span

impl Serialize for Data

impl<T, S> Serialize for BoundedVec<T, S>where
    T: Serialize,

impl<T, S> Serialize for WeakBoundedVec<T, S>where
    T: Serialize,

impl<Block> Serialize for BlockId<Block>where
    Block: Serialize + BlockT,
    Block::Hash: Serialize,

impl<Header, Extrinsic> Serialize for Block<Header, Extrinsic>where
    Header: Serialize,
    Extrinsic: Serialize + MaybeSerialize,

impl<Block> Serialize for SignedBlock<Block>where
    Block: Serialize,

impl Serialize for Digest

impl Serialize for Era

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

impl<Address: Encode, Signature: Encode, Call: Encode, Extra: SignedExtension> Serialize for UncheckedExtrinsic<Address, Call, Signature, Extra>

impl<Xt: Encode> Serialize for ExtrinsicWrapper<Xt>

impl<Xt> Serialize for Block<Xt>where
    Xt: Serialize,

impl<Call, Extra> Serialize for TestXt<Call, Extra>where
    TestXt<Call, Extra>: Encode,

impl<Hash> Serialize for StorageChangeSet<Hash>where
    Hash: Serialize,

impl Serialize for Value

impl<T: Serialize> Serialize for Spanned<T>

impl<'a> Serialize for SerializeFieldMap<'a, Event<'_>>

impl<'a> Serialize for SerializeFieldMap<'a, Attributes<'_>>

impl<'a> Serialize for SerializeFieldMap<'a, Record<'_>>

impl<'a> Serialize for SerializeFieldSet<'a>

impl<'a> Serialize for SerializeLevel<'a>

impl<'a> Serialize for SerializeId<'a>

impl<'a> Serialize for SerializeMetadata<'a>

impl<'a> Serialize for SerializeEvent<'a>

impl<'a> Serialize for SerializeRecord<'a>

impl Serialize for Module

impl Serialize for Global

impl Serialize for Table

impl Serialize for Memory

impl Serialize for Tag