UniqueVersioned

Trait UniqueVersioned 

Source
pub trait UniqueVersioned: Versioned {
    // Required methods
    fn as_unique_version(&self) -> &Self::LatestVersion;
    fn as_unique_version_mut(&mut self) -> &mut Self::LatestVersion;
    fn into_unique_version(self) -> Self::LatestVersion;
    fn from_unique_version(unique_version: Self::LatestVersion) -> Self;
}
Expand description

A trait for Versioned types which only have a single version.

This enables a number of special-cased methods to be implemented which are only possible when there is only one version.

Required Methods§

Source

fn as_unique_version(&self) -> &Self::LatestVersion

Returns an immutable reference to (currently) the only possible version of the inner content.

Source

fn as_unique_version_mut(&mut self) -> &mut Self::LatestVersion

Returns a mutable reference to (currently) the only possible version of the inner content.

This is somewhat equivalent to in_place_fully_update_and_as_latest_version_mut, but doesn’t need to do any updating, so can be used where logical correctness requires there to be a unique version, requires no updating, or simply for slightly better performance.

Source

fn into_unique_version(self) -> Self::LatestVersion

Returns the (currently) only possible version of the inner content.

This is somewhat equivalent to fully_update_and_into_latest_version, but doesn’t need to do any updating, so can be used where logical correctness requires there to be a unique version, requires no updating, or simply for slightly better performance.

Source

fn from_unique_version(unique_version: Self::LatestVersion) -> Self

Creates the versioned wrapper from the (currently) only possible version.

This is equivalent to from_latest_version, but useful to use instead if your logic’s correctness is dependent on there only being a single version. If another version gets added, this method will give a compile error.

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.

Implementations on Foreign Types§

Source§

impl UniqueVersioned for VersionedAccountAuthorizedDepositor

Source§

impl UniqueVersioned for VersionedAccountDepositRule

Source§

impl UniqueVersioned for VersionedAccountResourcePreference

Source§

impl UniqueVersioned for VersionedAccountResourceVault

Source§

impl UniqueVersioned for VersionedAccountLockerAccountClaims

Source§

impl UniqueVersioned for VersionedMetadataEntry

Source§

impl UniqueVersioned for VersionedRoleAssignmentAccessRule

Source§

impl UniqueVersioned for VersionedRoleAssignmentOwner

Source§

impl UniqueVersioned for VersionedComponentRoyaltyAccumulator

Source§

impl UniqueVersioned for VersionedComponentRoyaltyMethodAmount

Source§

impl UniqueVersioned for VersionedTreeNode

Source§

impl UniqueVersioned for TransactionValidationConfigurationSubstate

Implementors§

Source§

impl UniqueVersioned for VersionedMultiResourcePoolState

Source§

impl UniqueVersioned for VersionedOneResourcePoolState

Source§

impl UniqueVersioned for VersionedTwoResourcePoolState

Source§

impl UniqueVersioned for ProtocolUpdateStatusSummarySubstate

Source§

impl UniqueVersioned for VersionedConsensusManagerConfiguration

Source§

impl UniqueVersioned for VersionedConsensusManagerCurrentProposalStatistic

Source§

impl UniqueVersioned for VersionedConsensusManagerCurrentValidatorSet

Source§

impl UniqueVersioned for VersionedConsensusManagerProposerMilliTimestamp

Source§

impl UniqueVersioned for VersionedConsensusManagerProposerMinuteTimestamp

Source§

impl UniqueVersioned for VersionedConsensusManagerRegisteredValidatorByStake

Source§

impl UniqueVersioned for VersionedConsensusManagerState

Source§

impl UniqueVersioned for VersionedConsensusManagerValidatorRewards

Source§

impl UniqueVersioned for VersionedFungibleResourceManagerDivisibility

Source§

impl UniqueVersioned for VersionedFungibleResourceManagerTotalSupply

Source§

impl UniqueVersioned for VersionedFungibleVaultBalance

Source§

impl UniqueVersioned for VersionedFungibleVaultFreezeStatus

Source§

impl UniqueVersioned for VersionedFungibleVaultLockedBalance

Source§

impl UniqueVersioned for VersionedNonFungibleResourceManagerIdType

Source§

impl UniqueVersioned for VersionedNonFungibleResourceManagerMutableFields

Source§

impl UniqueVersioned for VersionedNonFungibleResourceManagerTotalSupply

Source§

impl UniqueVersioned for VersionedNonFungibleVaultBalance

Source§

impl UniqueVersioned for VersionedNonFungibleVaultFreezeStatus

Source§

impl UniqueVersioned for VersionedNonFungibleVaultLockedResource

Source§

impl UniqueVersioned for VersionedNonFungibleVaultNonFungible

Source§

impl UniqueVersioned for VersionedPackageBlueprintVersionAuthConfig

Source§

impl UniqueVersioned for VersionedPackageBlueprintVersionDefinition

Source§

impl UniqueVersioned for VersionedPackageBlueprintVersionDependencies

Source§

impl UniqueVersioned for VersionedPackageBlueprintVersionRoyaltyConfig

Source§

impl UniqueVersioned for VersionedPackageCodeInstrumentedCode

Source§

impl UniqueVersioned for VersionedPackageCodeOriginalCode

Source§

impl UniqueVersioned for VersionedPackageCodeVmType

Source§

impl UniqueVersioned for VersionedPackageRoyaltyAccumulator

Source§

impl UniqueVersioned for VersionedValidatorProtocolUpdateReadinessSignal

Source§

impl UniqueVersioned for VersionedValidatorState

Source§

impl UniqueVersioned for VersionedAccessControllerState

Source§

impl<S> UniqueVersioned for VersionedSchema<S>
where S: CustomSchema,