Trait VersionedPackageCodeOriginalCodeVersion

Source
pub trait VersionedPackageCodeOriginalCodeVersion {
    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", so this trait is not object safe.

Implementors§

Source§

impl VersionedPackageCodeOriginalCodeVersion for PackageCodeOriginalCodeV1

Source§

const DISCRIMINATOR: u8 = 0u8

Source§

type Versioned = VersionedPackageCodeOriginalCode

Source§

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

Source§

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