Skip to main content

ValueConvertible

Trait ValueConvertible 

Source
pub trait ValueConvertible: Serialize + DeserializeOwned {
    // Provided methods
    fn to_object(&self) -> Result<Value, ProtocolError>
       where Self: Sized { ... }
    fn into_object(self) -> Result<Value, ProtocolError>
       where Self: Sized { ... }
    fn from_object(value: Value) -> Result<Self, ProtocolError>
       where Self: Sized { ... }
    fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>
       where Self: Sized { ... }
}
Expand description

Convert to/from platform_value::Value using non-human-readable serde (Identifier = Value::Identifier(bytes), binary = Value::Bytes(bytes), raw byte fields preserved without stringification).

§⚠️ HR / non-HR divergence (Critical-1)

ValueConvertible calls platform_value::to_value, which uses a serializer that reports is_human_readable() == false. The mirror trait JsonConvertible uses serde_json::to_value, which reports true. Types whose Serialize impl branches on is_human_readable() produce structurally different output between the two paths:

Typeto_json() (HR)to_object() (non-HR)
platform_value::Identifier"5bV6jUfh..." (bs58 string)Value::Identifier([u8; 32])
[platform_value::BinaryData]"sg==" (base64 string)Value::Bytes(Vec<u8>)
Bytes20 / Bytes32 / Bytes36base64 stringValue::Bytes32([u8; N]) etc.
CoreScript"dqkU..." (base64 string)Value::Bytes(Vec<u8>)

Do not assume self.to_object()?.try_into_json()self.to_json(). They render the same field as a string in one and a byte array in the other. Round-trip tests should exercise each path independently.

§⚠️ ContentDeserializer caveat

Manual Deserialize impls that branch on deserializer.is_human_readable() must also handle serde::__private::de::ContentDeserializer, used internally by #[serde(tag = "...")] enums. ContentDeserializer always reports is_human_readable: true regardless of the original source, so a non-HR platform_value::Value flowing into a tagged enum gets shape- inferred as if it were HR. Recipe: write a dual-shape visitor accepting both shapes in the HR branch via deserialize_any. See [platform_value::Bytes32::deserialize] for the canonical example, and rs-dpp/src/serialization/serde_bytes.rs for [u8; N] / Vec<u8>.

Provided Methods§

Source

fn to_object(&self) -> Result<Value, ProtocolError>
where Self: Sized,

Source

fn into_object(self) -> Result<Value, ProtocolError>
where Self: Sized,

Source

fn from_object(value: Value) -> Result<Self, ProtocolError>
where Self: Sized,

Source

fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>
where Self: Sized,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl ValueConvertible for AddressWitness

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for PlatformAddress

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for AddressFundsFeeStrategyStep

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for StoredAssetLockInfo

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for AssetLockValue

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ExtendedBlockInfo

Source§

impl ValueConvertible for ExtendedEpochInfo

Source§

impl ValueConvertible for FinalizedEpochInfo

Source§

impl ValueConvertible for Validator

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ValidatorSet

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenConfiguration

Source§

impl ValueConvertible for TokenConfigurationPresetFeatures

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenConfigurationConvention

Source§

impl ValueConvertible for TokenConfigurationChangeItem

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenConfigurationLocalization

Source§

impl ValueConvertible for TokenDistributionInfo

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionType

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionTypeWithResolvedRecipient

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionRules

Source§

impl ValueConvertible for TokenKeepsHistoryRules

Source§

impl ValueConvertible for TokenMarketplaceRules

Source§

impl ValueConvertible for TokenTradeMode

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DistributionFunction

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionRecipient

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionResolvedRecipient

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenPerpetualDistribution

Source§

impl ValueConvertible for RewardDistributionMoment

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for RewardDistributionType

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenPreProgrammedDistribution

Source§

impl ValueConvertible for AuthorizedActionTakers

Source§

impl ValueConvertible for ChangeControlRules

Source§

impl ValueConvertible for DataContractConfig

Source§

impl ValueConvertible for ArrayItemType

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContestedIndexFieldMatch

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContestedIndexResolution

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for IndexCountability

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for OrderBy

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for Group

Source§

impl ValueConvertible for DataContractInSerializationFormat

Source§

impl ValueConvertible for StorageKeyRequirements

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for Document

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for GroupActionEvent

Source§

impl ValueConvertible for GroupAction

Source§

impl ValueConvertible for GroupActionStatus

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for Identity

Source§

impl ValueConvertible for ContractBounds

Source§

impl ValueConvertible for IdentityPublicKey

Source§

impl ValueConvertible for AssetLockProof

Available on crate feature value-conversion only.
Source§

impl ValueConvertible for StateTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for StateTransitionProofResult

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for AddressCreditWithdrawalTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for AddressFundingFromAssetLockTransition

Source§

impl ValueConvertible for AddressFundsTransferTransition

Source§

impl ValueConvertible for BatchedTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentPurchaseTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentTransferTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentUpdatePriceTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentBaseTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for BatchTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentCreateTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentDeleteTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DocumentReplaceTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenBurnTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenClaimTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenConfigUpdateTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDestroyFrozenFundsTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDirectPurchaseTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenEmergencyActionTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenFreezeTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenMintTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenSetPriceForDirectPurchaseTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenTransferTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenUnfreezeTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenBaseTransition

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for DataContractCreateTransition

Source§

impl ValueConvertible for DataContractUpdateTransition

Source§

impl ValueConvertible for IdentityCreateFromAddressesTransition

Source§

impl ValueConvertible for IdentityCreateTransition

Source§

impl ValueConvertible for IdentityCreditTransferToAddressesTransition

Source§

impl ValueConvertible for IdentityCreditTransferTransition

Source§

impl ValueConvertible for IdentityCreditWithdrawalTransition

Source§

impl ValueConvertible for IdentityTopUpFromAddressesTransition

Source§

impl ValueConvertible for IdentityTopUpTransition

Source§

impl ValueConvertible for IdentityUpdateTransition

Source§

impl ValueConvertible for MasternodeVoteTransition

Source§

impl ValueConvertible for IdentityPublicKeyInCreation

Source§

impl ValueConvertible for IdentityCreateFromShieldedPoolTransition

Source§

impl ValueConvertible for ShieldFromAssetLockTransition

Source§

impl ValueConvertible for ShieldTransition

Source§

impl ValueConvertible for ShieldedTransferTransition

Source§

impl ValueConvertible for ShieldedWithdrawalTransition

Source§

impl ValueConvertible for UnshieldTransition

Source§

impl ValueConvertible for TokenContractInfo

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenEmergencyAction

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for GasFeesPaidBy

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for IdentityTokenInfo

Source§

impl ValueConvertible for TokenStatus

Source§

impl ValueConvertible for TokenEvent

Source§

impl ValueConvertible for TokenPaymentInfo

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenPricingSchedule

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContenderWithSerializedDocument

Source§

impl ValueConvertible for ResourceVoteChoice

Source§

impl ValueConvertible for YesNoAbstainVoteChoice

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContestedDocumentVotePollWinnerInfo

Source§

impl ValueConvertible for VotePoll

Source§

impl ValueConvertible for Vote

Source§

impl ValueConvertible for ResourceVote

Source§

impl ValueConvertible for Pooling

Available on crate feature value-conversion only.
Source§

impl ValueConvertible for BlockInfo

Source§

impl ValueConvertible for Epoch

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenConfigurationPreset

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for TokenDistributionKey

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContestedIndexInformation

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for Index

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for IndexProperty

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for GroupStateTransitionInfo

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ChainAssetLockProof

Source§

impl ValueConvertible for InstantAssetLockProof

Source§

impl ValueConvertible for PartialIdentity

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for IdentityV0

Source§

impl ValueConvertible for Metadata

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for SerializedAction

Available on crate features value-conversion and serde-conversion only.
Source§

impl ValueConvertible for ContestedDocumentResourceVotePoll