Skip to main content

VersionedPackageCodeVmTypeVersion

Trait VersionedPackageCodeVmTypeVersion 

Source
pub trait VersionedPackageCodeVmTypeVersion {
    type Versioned: Versioned;
    type OwnedSborVariant;
    type BorrowedSborVariant<'a>
       where Self: 'a;

    const DISCRIMINATOR: u8;

    // Required methods
    fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_>;
    fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self
       where Self: Sized;
    fn into_versioned(self) -> Self::Versioned;
}

Required Associated Constants§

Required Associated Types§

Required Methods§

Source

fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_>

Can be used to encode the type as a variant under the Versioned type, without needing to clone, like this: encoder.encode(x.as_encodable_variant()).

Source

fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self
where Self: Sized,

Can be used to decode the type from an encoded variant, like this: X::from_decoded_variant(decoder.decode()?).

Source

fn into_versioned(self) -> Self::Versioned

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl VersionedPackageCodeVmTypeVersion for PackageCodeVmTypeV1

Source§

const DISCRIMINATOR: u8 = VersionedPackageCodeVmType_discriminators::LATEST_VERSION

Source§

type Versioned = VersionedPackageCodeVmType

Source§

type OwnedSborVariant = SborFixedEnumVariant<radix_engine::::blueprints::package::substates::package_models::{impl#193}::OwnedSborVariant::{constant#0}, (PackageCodeVmTypeV1,)>

Source§

type BorrowedSborVariant<'a> = SborFixedEnumVariant<radix_engine::::blueprints::package::substates::package_models::{impl#193}::BorrowedSborVariant::{constant#0}, (&'a PackageCodeVmTypeV1,)> where PackageCodeVmTypeV1: 'a