Trait sp_runtime::Serialize

source ·
pub trait Serialize {
    fn serialize<S>(
        &self,
        serializer: S
    ) -> Result<<S as Serializer>::Ok, <S as Serializer>::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§

Requires crate feature "serde" or "serde-1"

Requires crate feature "serde" or "serde-1"

Implementors§

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

impl Serialize for Public

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<'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 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 Serialize for Slot

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