Skip to main content

VersionedPackageCodeInstrumentedCodeVersion

Trait VersionedPackageCodeInstrumentedCodeVersion 

Source
pub trait VersionedPackageCodeInstrumentedCodeVersion {
    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 VersionedPackageCodeInstrumentedCodeVersion for PackageCodeInstrumentedCodeV1

Source§

const DISCRIMINATOR: u8 = VersionedPackageCodeInstrumentedCode_discriminators::LATEST_VERSION

Source§

type Versioned = VersionedPackageCodeInstrumentedCode

Source§

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

Source§

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