pub trait JsonSafeFields { }Expand description
Marker trait proving a type’s u64/i64 fields are protected for JS-safe JSON serialization.
§How it works
The #[json_safe_fields] attribute macro auto-implements this trait for annotated types.
The #[derive(JsonConvertible)] macro implements it for versioned enums and asserts
that all inner variant types also implement it.
§Compile errors
If you see the trait `JsonSafeFields` is not satisfied, it means a field type
in an annotated struct doesn’t implement this trait. Fix it by one of:
- Struct with u64 fields: add
#[cfg_attr(feature = "json-conversion", json_safe_fields)] - Simple enum/struct without u64: add
impl JsonSafeFields for MyType {}below BTreeMap<K, u64>field: add#[serde(with = "json_safe_generic_u64_value_map")]- New
type Foo = u64alias: add it toU64_ALIASESin the proc macro crate
§Why u64/i64 don’t implement this trait
A bare u64 is NOT JS-safe. Safety comes from #[serde(with = "json_safe_u64")]
applied at the field level. By excluding u64/i64 from this trait, the compiler
catches unprotected type aliases (type Foo = u64) and containers (Vec<u64>)
at compile time.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
impl JsonSafeFields for ()
impl JsonSafeFields for BinaryData
impl JsonSafeFields for Bytes20
impl JsonSafeFields for Bytes32
impl JsonSafeFields for Bytes36
impl JsonSafeFields for Encoding
impl JsonSafeFields for OutPoint
impl JsonSafeFields for String
impl JsonSafeFields for Value
impl JsonSafeFields for bool
impl JsonSafeFields for char
impl JsonSafeFields for f32
impl JsonSafeFields for f64
impl JsonSafeFields for i8
impl JsonSafeFields for i16
impl JsonSafeFields for i32
impl JsonSafeFields for isize
impl JsonSafeFields for u8
impl JsonSafeFields for u16
impl JsonSafeFields for u32
impl JsonSafeFields for usize
impl<K: JsonSafeFields, V: JsonSafeFields> JsonSafeFields for BTreeMap<K, V>
impl<K: JsonSafeFields, V: JsonSafeFields> JsonSafeFields for HashMap<K, V>
impl<T: JsonSafeFields> JsonSafeFields for &T
impl<T: JsonSafeFields> JsonSafeFields for BTreeSet<T>
impl<T: JsonSafeFields> JsonSafeFields for Box<T>
impl<T: JsonSafeFields> JsonSafeFields for HashSet<T>
impl<T: JsonSafeFields> JsonSafeFields for Option<T>
impl<T: JsonSafeFields> JsonSafeFields for Vec<T>
impl<const N: usize> JsonSafeFields for [u8; N]
Implementors§
impl JsonSafeFields for AddressCreditWithdrawalTransitionV0
impl JsonSafeFields for AddressFundingFromAssetLockTransitionV0
impl JsonSafeFields for AddressFundsFeeStrategy
impl JsonSafeFields for AddressFundsTransferTransitionV0
impl JsonSafeFields for AddressWitness
impl JsonSafeFields for AgreedFeeMultiplier
impl JsonSafeFields for AssetLockProof
impl JsonSafeFields for AuthorizedActionTakers
impl JsonSafeFields for BatchTransitionV0
impl JsonSafeFields for BatchTransitionV1
impl JsonSafeFields for BatchedTransition
state-transitions only.impl JsonSafeFields for BlockInfo
impl JsonSafeFields for ChainAssetLockProof
impl JsonSafeFields for ChangeControlRules
impl JsonSafeFields for ChangeControlRulesV0
impl JsonSafeFields for ContenderWithSerializedDocument
impl JsonSafeFields for ContenderWithSerializedDocumentV0
impl JsonSafeFields for ContestedDocumentResourceVotePoll
impl JsonSafeFields for ContestedIndexFieldMatch
impl JsonSafeFields for ContractBounds
impl JsonSafeFields for ContractFeeClaimTransition
impl JsonSafeFields for ContractFeeClaimTransitionV0
impl JsonSafeFields for ContractFeePot
json-conversion only.impl JsonSafeFields for ContractFeePotLastClaim
impl JsonSafeFields for ContractGroupMembership
impl JsonSafeFields for ContractGroupRegistration
impl JsonSafeFields for ContractModerationConfig
json-conversion only.impl JsonSafeFields for ContractModerationDocument
json-conversion only.impl JsonSafeFields for ContractModerationList
json-conversion only.impl JsonSafeFields for ContractModerationReason
json-conversion only.impl JsonSafeFields for ContractModerators
json-conversion only.impl JsonSafeFields for ContractUserModerationAction
json-conversion only.impl JsonSafeFields for ContractUserModerationTransition
impl JsonSafeFields for ContractUserModerationTransitionV0
impl JsonSafeFields for CoreScript
impl JsonSafeFields for DataContractConfig
impl JsonSafeFields for DataContractConfigV0
impl JsonSafeFields for DataContractConfigV1
impl JsonSafeFields for DataContractConfigV2
impl JsonSafeFields for DataContractCreateTransition
impl JsonSafeFields for DataContractCreateTransitionV0
impl JsonSafeFields for DataContractCreateTransitionV1
impl JsonSafeFields for DataContractInSerializationFormat
impl JsonSafeFields for DataContractUpdateTransition
impl JsonSafeFields for DataContractUpdateTransitionV0
impl JsonSafeFields for DistributionFunction
impl JsonSafeFields for DocumentActionFeeAgreement
json-conversion only.impl JsonSafeFields for DocumentActionFeeAgreementV0
impl JsonSafeFields for DocumentBaseTransition
state-transitions only.impl JsonSafeFields for DocumentBaseTransitionV0
impl JsonSafeFields for DocumentBaseTransitionV1
impl JsonSafeFields for DocumentBaseTransitionV2
impl JsonSafeFields for DocumentCreateTransitionV0
impl JsonSafeFields for DocumentDeleteTransitionV0
impl JsonSafeFields for DocumentIndexOnlyDeleteTransitionV0
impl JsonSafeFields for DocumentPurchaseTransitionV0
impl JsonSafeFields for DocumentReplaceTransitionV0
impl JsonSafeFields for DocumentTransferTransitionV0
impl JsonSafeFields for DocumentTransition
state-transitions only.impl JsonSafeFields for DocumentTypeInSerializationFormat
json-conversion only.Serialized as a byte string, so no integer of it reaches JSON as a number.
impl JsonSafeFields for DocumentUpdatePriceTransitionV0
impl JsonSafeFields for DocumentV0
impl JsonSafeFields for ElectedModerators
json-conversion only.impl JsonSafeFields for Epoch
impl JsonSafeFields for ExtendedBlockInfo
impl JsonSafeFields for ExtendedBlockInfoV0
impl JsonSafeFields for ExtendedEpochInfo
impl JsonSafeFields for ExtendedEpochInfoV0
impl JsonSafeFields for FinalizedEpochInfo
impl JsonSafeFields for FinalizedEpochInfoV0
impl JsonSafeFields for GasFeesPaidBy
impl JsonSafeFields for Group
impl JsonSafeFields for GroupAction
impl JsonSafeFields for GroupActionEvent
impl JsonSafeFields for GroupActionV0
impl JsonSafeFields for GroupStateTransitionInfo
impl JsonSafeFields for GroupV0
impl JsonSafeFields for Identifier
impl JsonSafeFields for IdentityCreateFromAddressesTransitionV0
impl JsonSafeFields for IdentityCreateFromShieldedPoolTransition
impl JsonSafeFields for IdentityCreateFromShieldedPoolTransitionV0
impl JsonSafeFields for IdentityCreateTransition
impl JsonSafeFields for IdentityCreateTransitionV0
impl JsonSafeFields for IdentityCreditTransferToAddressesTransitionV0
impl JsonSafeFields for IdentityCreditTransferTransition
impl JsonSafeFields for IdentityCreditTransferTransitionV0
impl JsonSafeFields for IdentityCreditWithdrawalTransition
impl JsonSafeFields for IdentityCreditWithdrawalTransitionV0
impl JsonSafeFields for IdentityCreditWithdrawalTransitionV1
impl JsonSafeFields for IdentityKeyLimitsUpdateTransition
impl JsonSafeFields for IdentityKeyLimitsUpdateTransitionV0
impl JsonSafeFields for IdentityPublicKey
impl JsonSafeFields for IdentityPublicKeyInCreation
impl JsonSafeFields for IdentityPublicKeyInCreationV0
impl JsonSafeFields for IdentityPublicKeyInCreationV1
impl JsonSafeFields for IdentityPublicKeyV0
impl JsonSafeFields for IdentityPublicKeyV1
impl JsonSafeFields for IdentityTokenInfo
impl JsonSafeFields for IdentityTokenInfoV0
impl JsonSafeFields for IdentityTopUpFromAddressesTransitionV0
impl JsonSafeFields for IdentityTopUpFromShieldedPoolTransition
impl JsonSafeFields for IdentityTopUpFromShieldedPoolTransitionV0
impl JsonSafeFields for IdentityTopUpTransition
impl JsonSafeFields for IdentityTopUpTransitionV0
impl JsonSafeFields for IdentityUpdateTransition
impl JsonSafeFields for IdentityUpdateTransitionV0
impl JsonSafeFields for IdentityV0
impl JsonSafeFields for InstantAssetLockProof
impl JsonSafeFields for InterimModerators
json-conversion only.impl JsonSafeFields for KeyType
impl JsonSafeFields for MasternodeVoteTransition
impl JsonSafeFields for MasternodeVoteTransitionV0
impl JsonSafeFields for Metadata
impl JsonSafeFields for ModerationAbility
json-conversion only.impl JsonSafeFields for PartialIdentity
impl JsonSafeFields for PlatformAddress
impl JsonSafeFields for Pooling
impl JsonSafeFields for Purpose
impl JsonSafeFields for ResourceVote
impl JsonSafeFields for ResourceVoteChoice
impl JsonSafeFields for ResourceVoteV0
impl JsonSafeFields for RewardDistributionMoment
impl JsonSafeFields for RewardDistributionType
impl JsonSafeFields for SecurityLevel
impl JsonSafeFields for SerializedAction
impl JsonSafeFields for ShieldFromAssetLockTransition
impl JsonSafeFields for ShieldFromAssetLockTransitionV0
impl JsonSafeFields for ShieldFromAssetLockTransitionV1
impl JsonSafeFields for ShieldFromIdentityTransition
impl JsonSafeFields for ShieldFromIdentityTransitionV0
impl JsonSafeFields for ShieldTransition
impl JsonSafeFields for ShieldTransitionV0
impl JsonSafeFields for ShieldedTransferTransition
impl JsonSafeFields for ShieldedTransferTransitionV0
impl JsonSafeFields for ShieldedWithdrawalTransition
impl JsonSafeFields for ShieldedWithdrawalTransitionV0
impl JsonSafeFields for StorageKeyRequirements
impl JsonSafeFields for TokenBaseTransition
state-transitions only.impl JsonSafeFields for TokenBaseTransitionV0
impl JsonSafeFields for TokenBurnFromPoolTransitionV0
impl JsonSafeFields for TokenBurnTransitionV0
impl JsonSafeFields for TokenClaimToPoolTransitionV0
impl JsonSafeFields for TokenClaimTransitionV0
impl JsonSafeFields for TokenConfigUpdateTransitionV0
impl JsonSafeFields for TokenConfiguration
impl JsonSafeFields for TokenConfigurationChangeItem
impl JsonSafeFields for TokenConfigurationConvention
impl JsonSafeFields for TokenConfigurationConventionV0
impl JsonSafeFields for TokenConfigurationLocalization
impl JsonSafeFields for TokenConfigurationLocalizationV0
impl JsonSafeFields for TokenConfigurationV0
impl JsonSafeFields for TokenConfigurationV1
impl JsonSafeFields for TokenDestroyFrozenFundsTransitionV0
impl JsonSafeFields for TokenDirectPurchaseToPoolTransitionV0
impl JsonSafeFields for TokenDirectPurchaseTransitionV0
impl JsonSafeFields for TokenDistributionInfo
impl JsonSafeFields for TokenDistributionRecipient
impl JsonSafeFields for TokenDistributionRules
impl JsonSafeFields for TokenDistributionRulesV0
impl JsonSafeFields for TokenDistributionRulesV1
impl JsonSafeFields for TokenDistributionType
impl JsonSafeFields for TokenEmergencyAction
impl JsonSafeFields for TokenEmergencyActionTransitionV0
impl JsonSafeFields for TokenEvent
impl JsonSafeFields for TokenFreezeTransitionV0
impl JsonSafeFields for TokenKeepsHistoryRules
impl JsonSafeFields for TokenKeepsHistoryRulesV0
impl JsonSafeFields for TokenMarketplaceRules
impl JsonSafeFields for TokenMarketplaceRulesV0
impl JsonSafeFields for TokenMintToPoolTransitionV0
impl JsonSafeFields for TokenMintTransitionV0
impl JsonSafeFields for TokenOncePerIdentityDistribution
impl JsonSafeFields for TokenOncePerIdentityDistributionV0
impl JsonSafeFields for TokenPaymentInfo
impl JsonSafeFields for TokenPaymentInfoV0
impl JsonSafeFields for TokenPaymentInfoV1
impl JsonSafeFields for TokenPerpetualDistribution
impl JsonSafeFields for TokenPerpetualDistributionV0
impl JsonSafeFields for TokenPreProgrammedDistribution
impl JsonSafeFields for TokenPreProgrammedDistributionV0
impl JsonSafeFields for TokenPricingSchedule
impl JsonSafeFields for TokenPurchaseFromShieldedPoolTransition
impl JsonSafeFields for TokenPurchaseFromShieldedPoolTransitionV0
impl JsonSafeFields for TokenSetPriceForDirectPurchaseTransitionV0
impl JsonSafeFields for TokenShieldTransitionV0
impl JsonSafeFields for TokenShieldedPayment
impl JsonSafeFields for TokenShieldedTransferTransitionV0
impl JsonSafeFields for TokenShieldedTransferWithShieldedFeeTransition
impl JsonSafeFields for TokenShieldedTransferWithShieldedFeeTransitionV0
impl JsonSafeFields for TokenStatus
impl JsonSafeFields for TokenStatusV0
impl JsonSafeFields for TokenTradeMode
impl JsonSafeFields for TokenTransferTransitionV0
impl JsonSafeFields for TokenTransition
state-transitions only.