JsonSafeFields

Trait JsonSafeFields 

Source
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 = u64 alias: add it to U64_ALIASES in 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.

Implementations on Foreign Types§

Source§

impl JsonSafeFields for bool

Source§

impl JsonSafeFields for char

Source§

impl JsonSafeFields for f32

Source§

impl JsonSafeFields for f64

Source§

impl JsonSafeFields for i8

Source§

impl JsonSafeFields for i16

Source§

impl JsonSafeFields for i32

Source§

impl JsonSafeFields for isize

Source§

impl JsonSafeFields for u8

Source§

impl JsonSafeFields for u16

Source§

impl JsonSafeFields for u32

Source§

impl JsonSafeFields for ()

Source§

impl JsonSafeFields for usize

Source§

impl JsonSafeFields for String

Source§

impl JsonSafeFields for BinaryData

Source§

impl JsonSafeFields for Encoding

Source§

impl JsonSafeFields for OutPoint

Source§

impl JsonSafeFields for Value

Source§

impl<K: JsonSafeFields, V: JsonSafeFields> JsonSafeFields for BTreeMap<K, V>

Source§

impl<K: JsonSafeFields, V: JsonSafeFields> JsonSafeFields for HashMap<K, V>

Source§

impl<T: JsonSafeFields> JsonSafeFields for Option<T>

Source§

impl<T: JsonSafeFields> JsonSafeFields for &T

Source§

impl<T: JsonSafeFields> JsonSafeFields for Box<T>

Source§

impl<T: JsonSafeFields> JsonSafeFields for BTreeSet<T>

Source§

impl<T: JsonSafeFields> JsonSafeFields for Vec<T>

Source§

impl<T: JsonSafeFields> JsonSafeFields for HashSet<T>

Source§

impl<const N: usize> JsonSafeFields for [u8; N]

Implementors§

Source§

impl JsonSafeFields for PlatformAddress

Source§

impl JsonSafeFields for ExtendedBlockInfo

Source§

impl JsonSafeFields for ExtendedEpochInfo

Source§

impl JsonSafeFields for FinalizedEpochInfo

Source§

impl JsonSafeFields for TokenConfiguration

Source§

impl JsonSafeFields for TokenConfigurationConvention

Source§

impl JsonSafeFields for TokenConfigurationLocalization

Source§

impl JsonSafeFields for TokenDistributionRules

Source§

impl JsonSafeFields for TokenKeepsHistoryRules

Source§

impl JsonSafeFields for TokenMarketplaceRules

Source§

impl JsonSafeFields for TokenTradeMode

Source§

impl JsonSafeFields for DistributionFunction

Source§

impl JsonSafeFields for TokenDistributionRecipient

Source§

impl JsonSafeFields for TokenPerpetualDistribution

Source§

impl JsonSafeFields for RewardDistributionType

Source§

impl JsonSafeFields for TokenPreProgrammedDistribution

Source§

impl JsonSafeFields for AuthorizedActionTakers

Source§

impl JsonSafeFields for ChangeControlRules

Source§

impl JsonSafeFields for DataContractConfig

Source§

impl JsonSafeFields for Group

Source§

impl JsonSafeFields for DataContractInSerializationFormat

Source§

impl JsonSafeFields for StorageKeyRequirements

Source§

impl JsonSafeFields for GroupActionEvent

Source§

impl JsonSafeFields for GroupAction

Source§

impl JsonSafeFields for ContractBounds

Source§

impl JsonSafeFields for IdentityPublicKey

Source§

impl JsonSafeFields for KeyType

Source§

impl JsonSafeFields for Purpose

Source§

impl JsonSafeFields for SecurityLevel

Source§

impl JsonSafeFields for AssetLockProof

Source§

impl JsonSafeFields for DataContractCreateTransition

Source§

impl JsonSafeFields for DataContractUpdateTransition

Source§

impl JsonSafeFields for IdentityCreateTransition

Source§

impl JsonSafeFields for IdentityCreditTransferTransition

Source§

impl JsonSafeFields for IdentityCreditWithdrawalTransition

Source§

impl JsonSafeFields for IdentityTopUpTransition

Source§

impl JsonSafeFields for IdentityUpdateTransition

Source§

impl JsonSafeFields for MasternodeVoteTransition

Source§

impl JsonSafeFields for IdentityPublicKeyInCreation

Source§

impl JsonSafeFields for IdentityTokenInfo

Source§

impl JsonSafeFields for TokenStatus

Source§

impl JsonSafeFields for TokenEvent

Source§

impl JsonSafeFields for ContenderWithSerializedDocument

Source§

impl JsonSafeFields for ResourceVoteChoice

Source§

impl JsonSafeFields for VotePoll

Source§

impl JsonSafeFields for Vote

Source§

impl JsonSafeFields for ResourceVote

Source§

impl JsonSafeFields for Pooling

Source§

impl JsonSafeFields for BlockInfo

Source§

impl JsonSafeFields for Epoch

Source§

impl JsonSafeFields for ExtendedBlockInfoV0

Source§

impl JsonSafeFields for ExtendedEpochInfoV0

Source§

impl JsonSafeFields for FinalizedEpochInfoV0

Source§

impl JsonSafeFields for TokenConfigurationV0

Source§

impl JsonSafeFields for TokenConfigurationConventionV0

Source§

impl JsonSafeFields for TokenConfigurationLocalizationV0

Source§

impl JsonSafeFields for TokenDistributionRulesV0

Source§

impl JsonSafeFields for TokenKeepsHistoryRulesV0

Source§

impl JsonSafeFields for TokenMarketplaceRulesV0

Source§

impl JsonSafeFields for TokenPerpetualDistributionV0

Source§

impl JsonSafeFields for TokenPreProgrammedDistributionV0

Source§

impl JsonSafeFields for ChangeControlRulesV0

Source§

impl JsonSafeFields for DataContractConfigV0

Source§

impl JsonSafeFields for DataContractConfigV1

Source§

impl JsonSafeFields for GroupV0

Source§

impl JsonSafeFields for DocumentV0

Source§

impl JsonSafeFields for GroupActionV0

Source§

impl JsonSafeFields for Identifier

Source§

impl JsonSafeFields for CoreScript

Source§

impl JsonSafeFields for IdentityPublicKeyV0

Source§

impl JsonSafeFields for ChainAssetLockProof

Source§

impl JsonSafeFields for InstantAssetLockProof

Source§

impl JsonSafeFields for PartialIdentity

Source§

impl JsonSafeFields for IdentityV0

Source§

impl JsonSafeFields for DataContractCreateTransitionV0

Source§

impl JsonSafeFields for DataContractUpdateTransitionV0

Source§

impl JsonSafeFields for IdentityCreateTransitionV0

Source§

impl JsonSafeFields for IdentityCreditTransferToAddressesTransitionV0

Source§

impl JsonSafeFields for IdentityCreditTransferTransitionV0

Source§

impl JsonSafeFields for IdentityCreditWithdrawalTransitionV0

Source§

impl JsonSafeFields for IdentityCreditWithdrawalTransitionV1

Source§

impl JsonSafeFields for IdentityTopUpTransitionV0

Source§

impl JsonSafeFields for IdentityUpdateTransitionV0

Source§

impl JsonSafeFields for MasternodeVoteTransitionV0

Source§

impl JsonSafeFields for IdentityPublicKeyInCreationV0

Source§

impl JsonSafeFields for IdentityTokenInfoV0

Source§

impl JsonSafeFields for TokenStatusV0

Source§

impl JsonSafeFields for ContenderWithSerializedDocumentV0

Source§

impl JsonSafeFields for ContestedDocumentResourceVotePoll

Source§

impl JsonSafeFields for ResourceVoteV0