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