TransactionValidationConfigV1

Struct TransactionValidationConfigV1 

Source
pub struct TransactionValidationConfigV1 {
Show 16 fields pub max_signer_signatures_per_intent: usize, pub max_references_per_intent: usize, pub min_tip_percentage: u16, pub max_tip_percentage: u16, pub max_epoch_range: u64, pub max_instructions: usize, pub message_validation: MessageValidationConfig, pub v1_transactions_allow_notary_to_duplicate_signer: bool, pub preparation_settings: PreparationSettingsV1, pub manifest_validation: ManifestValidationRuleset, pub v2_transactions_allowed: bool, pub min_tip_basis_points: u32, pub max_tip_basis_points: u32, pub max_subintent_depth: usize, pub max_total_signature_validations: usize, pub max_total_references: usize,
}

Fields§

§max_signer_signatures_per_intent: usize

Signer signatures only, not including notary signature

§max_references_per_intent: usize§min_tip_percentage: u16§max_tip_percentage: u16§max_epoch_range: u64§max_instructions: usize§message_validation: MessageValidationConfig§v1_transactions_allow_notary_to_duplicate_signer: bool§preparation_settings: PreparationSettingsV1§manifest_validation: ManifestValidationRuleset§v2_transactions_allowed: bool§min_tip_basis_points: u32§max_tip_basis_points: u32§max_subintent_depth: usize

A setting of N here allows a total depth of N + 1 if you include the root transaction intent.

§max_total_signature_validations: usize§max_total_references: usize

Implementations§

Source§

impl TransactionValidationConfigV1

Source

pub fn load(database: &impl SubstateDatabase) -> Self

Source§

impl TransactionValidationConfigV1

Source

pub const fn latest() -> Self

Source

pub const fn babylon() -> Self

Source

pub const fn cuttlefish() -> Self

Trait Implementations§

Source§

impl<X: CustomValueKind> Categorize<X> for TransactionValidationConfigV1

Source§

impl Clone for TransactionValidationConfigV1

Source§

fn clone(&self) -> TransactionValidationConfigV1

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TransactionValidationConfigV1

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<D: Decoder<X>, X: CustomValueKind> Decode<X, D> for TransactionValidationConfigV1

Source§

fn decode_body_with_value_kind( decoder: &mut D, value_kind: ValueKind<X>, ) -> Result<Self, DecodeError>

Decodes the type from the decoder, which should match a preloaded value kind. Read more
Source§

impl<C: CustomTypeKind<RustTypeId>> Describe<C> for TransactionValidationConfigV1

Source§

const TYPE_ID: RustTypeId

The TYPE_ID should give a unique identifier for its SBOR schema type. An SBOR schema type capture details about the SBOR payload, how it should be interpreted, validated and displayed. Read more
Source§

fn type_data() -> TypeData<C, RustTypeId>

Returns the local schema for the given type. Read more
Source§

fn add_all_dependencies(aggregator: &mut TypeAggregator<C>)

For each type referenced in get_local_type_data, we need to ensure that the type and all of its own references get added to the aggregator. Read more
Source§

impl<E: Encoder<X>, X: CustomValueKind> Encode<X, E> for TransactionValidationConfigV1

Source§

fn encode_value_kind(&self, encoder: &mut E) -> Result<(), EncodeError>

Encodes the SBOR value’s kind to the encoder
Source§

fn encode_body(&self, encoder: &mut E) -> Result<(), EncodeError>

Encodes the SBOR body of the type to the encoder. Read more
Source§

impl From<TransactionValidationConfigV1> for TransactionValidationConfigurationSubstate

Source§

fn from(value: TransactionValidationConfigV1) -> Self

Converts to this type from the input type.
Source§

impl From<TransactionValidationConfigV1> for TransactionValidationConfigurationVersions

Source§

fn from(value: TransactionValidationConfigV1) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for TransactionValidationConfigV1

Source§

fn eq(&self, other: &TransactionValidationConfigV1) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<X: CustomValueKind> SborTuple<X> for TransactionValidationConfigV1

Source§

impl TransactionValidationConfigurationSubstateVersion for TransactionValidationConfigV1

Source§

const DISCRIMINATOR: u8 = 0u8

Source§

type Versioned = TransactionValidationConfigurationSubstate

Source§

type OwnedSborVariant = SborFixedEnumVariant<$crate::eager_replace! { [!SET! #FullGenerics = $(< $( $lt $( : $clt $(+ $dlt )* )? $( = $deflt)? ),+ >)?] [!SET! #ImplGenerics = $(< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)?] [!SET! #TypeGenerics = $(< $( $lt ),+ >)?] [!SET! #VersionedType = $versioned_name $(< $( $lt ),+ >)?] [!SET! #VersionedTypePath = $versioned_name $(::< $( $lt ),+ >)?] [!SET! #VersionsType = $versions_name $(< $( $lt ),+ >)?] [!SET! #VersionsTypePath = $versions_name $(::< $( $lt ),+ >)?] [!SET:ident! #PermitSborAttributesAlias = $versioned_name _PermitSborAttributes] #[allow(dead_code)] $vis type $latest_version_alias = $latest_version_type; use $crate::PermitSborAttributes as #PermitSborAttributesAlias; #[derive(#PermitSborAttributesAlias)] $(#[$attributes])* $($(#[$outer_attributes])*)? // Needs to go below $attributes so that a #[derive(Sbor)] in the attributes can see it. #[sbor(as_type = [!stringify! #VersionsType])] /// If you wish to get access to match on the versions, use `.as_ref()` or `.as_mut()`. $vis struct $versioned_name #FullGenerics { inner: Option<#VersionsType>, } impl #ImplGenerics #VersionedType { pub fn new(inner: #VersionsType) -> Self { Self { inner: Some(inner), } } } impl #ImplGenerics AsRef<#VersionsType> for #VersionedType { fn as_ref(&self) -> &#VersionsType { self.inner.as_ref().unwrap() } } impl #ImplGenerics AsMut<#VersionsType> for #VersionedType { fn as_mut(&mut self) -> &mut #VersionsType { self.inner.as_mut().unwrap() } } impl #ImplGenerics From<#VersionsType> for #VersionedType { fn from(value: #VersionsType) -> Self { Self::new(value) } } impl #ImplGenerics From<#VersionedType> for #VersionsType { fn from(value: #VersionedType) -> Self { value.inner.unwrap() } } impl #ImplGenerics Versioned for #VersionedType { type Versions = #VersionsType; type LatestVersion = $latest_version_type; fn is_fully_updated(&self) -> bool { self.as_ref().is_fully_updated() } fn in_place_fully_update(&mut self) -> &mut Self { if !self.is_fully_updated() { let current = self.inner.take().unwrap(); self.inner = Some(current.fully_update()); } self } fn fully_update_and_into_latest_version(self) -> Self::LatestVersion { self.inner.unwrap().fully_update_and_into_latest_version() } /// Constructs the versioned enum from the latest content fn from_latest_version(latest: Self::LatestVersion) -> Self { Self::new(latest.into()) } fn as_latest_version(&self) -> Option<&Self::LatestVersion> { self.as_ref().as_latest_version() } fn as_latest_version_mut(&mut self) -> Option<&mut Self::LatestVersion> { self.as_mut().as_latest_version_mut() } fn as_versions(&self) -> &Self::Versions { self.as_ref() } fn as_versions_mut(&mut self) -> &mut Self::Versions { self.as_mut() } fn into_versions(self) -> Self::Versions { self.inner.unwrap() } fn from_versions(version: Self::Versions) -> Self { Self::new(version) } } [!SET:ident! #discriminators = $versioned_name _discriminators] #[allow(non_snake_case)] mod #discriminators { // The initial version of this tool used 0-indexed/off-by-one discriminators accidentally. // We're stuck with these now unfortunately... // But we make them explicit in case versions are skipped. $($( pub const [!ident! VERSION_ $version_num]: u8 = $version_num - 1; )*)? pub const LATEST_VERSION: u8 = $latest_version - 1; } #[derive(#PermitSborAttributesAlias)] $(#[$attributes])* $($(#[$inner_attributes])*)? $vis enum $versions_name #FullGenerics { $($( #[sbor(discriminator(#discriminators::[!ident! VERSION_ $version_num]))] [!ident! V $version_num]($version_type), )*)? #[sbor(discriminator(#discriminators::LATEST_VERSION))] [!ident! V $latest_version]($latest_version_type), } #[allow(dead_code)] impl #ImplGenerics #VersionsType { /// Returns if update happened, and the updated versioned enum. fn attempt_single_update(self) -> (bool, Self) { match self { $($( Self::[!ident! V $version_num](value) => (true, Self::[!ident! V $update_to_version_num](value.into())), )*)? this @ Self::[!ident! V $latest_version](_) => (false, this), } } fn fully_update(mut self) -> Self { loop { let (did_update, updated) = self.attempt_single_update(); if did_update { // We should try updating self = updated; } else { // We're at latest - return return updated; } } } #[allow(unreachable_patterns)] pub fn is_fully_updated(&self) -> bool { match self { Self::[!ident! V $latest_version](_) => true, _ => false, } } #[allow(irrefutable_let_patterns)] fn fully_update_and_into_latest_version(self) -> $latest_version_type { let Self::[!ident! V $latest_version](latest) = self.fully_update() else { panic!("Invalid resolved latest version not equal to latest type") }; return latest; } fn from_latest_version(latest: $latest_version_type) -> Self { Self::[!ident! V $latest_version](latest) } #[allow(unreachable_patterns)] fn as_latest_version(&self) -> Option<&$latest_version_type> { match self { Self::[!ident! V $latest_version](latest) => Some(latest), _ => None, } } #[allow(unreachable_patterns)] fn as_latest_version_mut(&mut self) -> Option<&mut $latest_version_type> { match self { Self::[!ident! V $latest_version](latest) => Some(latest), _ => None, } } pub fn into_versioned(self) -> #VersionedType { #VersionedTypePath::new(self) } } $($( #[allow(dead_code)] impl #ImplGenerics From<$version_type> for #VersionsType { fn from(value: $version_type) -> Self { Self::[!ident! V $version_num](value) } } #[allow(dead_code)] impl #ImplGenerics From<$version_type> for #VersionedType { fn from(value: $version_type) -> Self { Self::new(#VersionsTypePath::[!ident! V $version_num](value)) } } )*)? #[allow(dead_code)] impl #ImplGenerics From<$latest_version_type> for #VersionsType { fn from(value: $latest_version_type) -> Self { Self::[!ident! V $latest_version](value) } } #[allow(dead_code)] impl #ImplGenerics From<$latest_version_type> for #VersionedType { fn from(value: $latest_version_type) -> Self { Self::new($versions_name::[!ident! V $latest_version](value)) } } // This trait is similar to `SborEnumVariantFor<X, Versioned>`, but it's nicer to use as // it's got a better name and can be implemented without needing a specific CustomValueKind. [!SET:ident! #VersionTrait = $versioned_name Version] #[allow(dead_code)] $vis trait #VersionTrait { // Note: We need to use an explicit associated type to capture the generics. type Versioned: sbor::Versioned; const DISCRIMINATOR: u8; type OwnedSborVariant; type BorrowedSborVariant<'a> where Self: 'a; /// 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())`. fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_>; /// Can be used to decode the type from an encoded variant, like this: /// `X::from_decoded_variant(decoder.decode()?)`. fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self where Self: core::marker::Sized; fn into_versioned(self) -> Self::Versioned; } $($( impl #ImplGenerics #VersionTrait for $version_type { type Versioned = #VersionedType; const DISCRIMINATOR: u8 = #discriminators::[!ident! VERSION_ $version_num]; type OwnedSborVariant = sbor::SborFixedEnumVariant::<{ #discriminators::[!ident! VERSION_ $version_num] }, (Self,)>; type BorrowedSborVariant<'a> = sbor::SborFixedEnumVariant::<{ #discriminators::[!ident! VERSION_ $version_num] }, (&'a Self,)> where Self: 'a; fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_> { sbor::SborFixedEnumVariant::new((self,)) } fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self { variant.into_fields().0 } fn into_versioned(self) -> Self::Versioned { #VersionedTypePath::new(self.into()) } } )*)? impl #ImplGenerics #VersionTrait for $latest_version_type { type Versioned = $versioned_name #TypeGenerics; const DISCRIMINATOR: u8 = #discriminators::LATEST_VERSION; type OwnedSborVariant = sbor::SborFixedEnumVariant::<{ #discriminators::LATEST_VERSION }, (Self,)>; type BorrowedSborVariant<'a> = sbor::SborFixedEnumVariant::<{ #discriminators::LATEST_VERSION }, (&'a Self,)> where Self: 'a; fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_> { sbor::SborFixedEnumVariant::new((self,)) } fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self { variant.into_fields().0 } fn into_versioned(self) -> Self::Versioned { #VersionedTypePath::new(self.into()) } } }, (TransactionValidationConfigV1,)>

Source§

type BorrowedSborVariant<'a> = SborFixedEnumVariant<$crate::eager_replace! { [!SET! #FullGenerics = $(< $( $lt $( : $clt $(+ $dlt )* )? $( = $deflt)? ),+ >)?] [!SET! #ImplGenerics = $(< $( $lt $( : $clt $(+ $dlt )* )? ),+ >)?] [!SET! #TypeGenerics = $(< $( $lt ),+ >)?] [!SET! #VersionedType = $versioned_name $(< $( $lt ),+ >)?] [!SET! #VersionedTypePath = $versioned_name $(::< $( $lt ),+ >)?] [!SET! #VersionsType = $versions_name $(< $( $lt ),+ >)?] [!SET! #VersionsTypePath = $versions_name $(::< $( $lt ),+ >)?] [!SET:ident! #PermitSborAttributesAlias = $versioned_name _PermitSborAttributes] #[allow(dead_code)] $vis type $latest_version_alias = $latest_version_type; use $crate::PermitSborAttributes as #PermitSborAttributesAlias; #[derive(#PermitSborAttributesAlias)] $(#[$attributes])* $($(#[$outer_attributes])*)? // Needs to go below $attributes so that a #[derive(Sbor)] in the attributes can see it. #[sbor(as_type = [!stringify! #VersionsType])] /// If you wish to get access to match on the versions, use `.as_ref()` or `.as_mut()`. $vis struct $versioned_name #FullGenerics { inner: Option<#VersionsType>, } impl #ImplGenerics #VersionedType { pub fn new(inner: #VersionsType) -> Self { Self { inner: Some(inner), } } } impl #ImplGenerics AsRef<#VersionsType> for #VersionedType { fn as_ref(&self) -> &#VersionsType { self.inner.as_ref().unwrap() } } impl #ImplGenerics AsMut<#VersionsType> for #VersionedType { fn as_mut(&mut self) -> &mut #VersionsType { self.inner.as_mut().unwrap() } } impl #ImplGenerics From<#VersionsType> for #VersionedType { fn from(value: #VersionsType) -> Self { Self::new(value) } } impl #ImplGenerics From<#VersionedType> for #VersionsType { fn from(value: #VersionedType) -> Self { value.inner.unwrap() } } impl #ImplGenerics Versioned for #VersionedType { type Versions = #VersionsType; type LatestVersion = $latest_version_type; fn is_fully_updated(&self) -> bool { self.as_ref().is_fully_updated() } fn in_place_fully_update(&mut self) -> &mut Self { if !self.is_fully_updated() { let current = self.inner.take().unwrap(); self.inner = Some(current.fully_update()); } self } fn fully_update_and_into_latest_version(self) -> Self::LatestVersion { self.inner.unwrap().fully_update_and_into_latest_version() } /// Constructs the versioned enum from the latest content fn from_latest_version(latest: Self::LatestVersion) -> Self { Self::new(latest.into()) } fn as_latest_version(&self) -> Option<&Self::LatestVersion> { self.as_ref().as_latest_version() } fn as_latest_version_mut(&mut self) -> Option<&mut Self::LatestVersion> { self.as_mut().as_latest_version_mut() } fn as_versions(&self) -> &Self::Versions { self.as_ref() } fn as_versions_mut(&mut self) -> &mut Self::Versions { self.as_mut() } fn into_versions(self) -> Self::Versions { self.inner.unwrap() } fn from_versions(version: Self::Versions) -> Self { Self::new(version) } } [!SET:ident! #discriminators = $versioned_name _discriminators] #[allow(non_snake_case)] mod #discriminators { // The initial version of this tool used 0-indexed/off-by-one discriminators accidentally. // We're stuck with these now unfortunately... // But we make them explicit in case versions are skipped. $($( pub const [!ident! VERSION_ $version_num]: u8 = $version_num - 1; )*)? pub const LATEST_VERSION: u8 = $latest_version - 1; } #[derive(#PermitSborAttributesAlias)] $(#[$attributes])* $($(#[$inner_attributes])*)? $vis enum $versions_name #FullGenerics { $($( #[sbor(discriminator(#discriminators::[!ident! VERSION_ $version_num]))] [!ident! V $version_num]($version_type), )*)? #[sbor(discriminator(#discriminators::LATEST_VERSION))] [!ident! V $latest_version]($latest_version_type), } #[allow(dead_code)] impl #ImplGenerics #VersionsType { /// Returns if update happened, and the updated versioned enum. fn attempt_single_update(self) -> (bool, Self) { match self { $($( Self::[!ident! V $version_num](value) => (true, Self::[!ident! V $update_to_version_num](value.into())), )*)? this @ Self::[!ident! V $latest_version](_) => (false, this), } } fn fully_update(mut self) -> Self { loop { let (did_update, updated) = self.attempt_single_update(); if did_update { // We should try updating self = updated; } else { // We're at latest - return return updated; } } } #[allow(unreachable_patterns)] pub fn is_fully_updated(&self) -> bool { match self { Self::[!ident! V $latest_version](_) => true, _ => false, } } #[allow(irrefutable_let_patterns)] fn fully_update_and_into_latest_version(self) -> $latest_version_type { let Self::[!ident! V $latest_version](latest) = self.fully_update() else { panic!("Invalid resolved latest version not equal to latest type") }; return latest; } fn from_latest_version(latest: $latest_version_type) -> Self { Self::[!ident! V $latest_version](latest) } #[allow(unreachable_patterns)] fn as_latest_version(&self) -> Option<&$latest_version_type> { match self { Self::[!ident! V $latest_version](latest) => Some(latest), _ => None, } } #[allow(unreachable_patterns)] fn as_latest_version_mut(&mut self) -> Option<&mut $latest_version_type> { match self { Self::[!ident! V $latest_version](latest) => Some(latest), _ => None, } } pub fn into_versioned(self) -> #VersionedType { #VersionedTypePath::new(self) } } $($( #[allow(dead_code)] impl #ImplGenerics From<$version_type> for #VersionsType { fn from(value: $version_type) -> Self { Self::[!ident! V $version_num](value) } } #[allow(dead_code)] impl #ImplGenerics From<$version_type> for #VersionedType { fn from(value: $version_type) -> Self { Self::new(#VersionsTypePath::[!ident! V $version_num](value)) } } )*)? #[allow(dead_code)] impl #ImplGenerics From<$latest_version_type> for #VersionsType { fn from(value: $latest_version_type) -> Self { Self::[!ident! V $latest_version](value) } } #[allow(dead_code)] impl #ImplGenerics From<$latest_version_type> for #VersionedType { fn from(value: $latest_version_type) -> Self { Self::new($versions_name::[!ident! V $latest_version](value)) } } // This trait is similar to `SborEnumVariantFor<X, Versioned>`, but it's nicer to use as // it's got a better name and can be implemented without needing a specific CustomValueKind. [!SET:ident! #VersionTrait = $versioned_name Version] #[allow(dead_code)] $vis trait #VersionTrait { // Note: We need to use an explicit associated type to capture the generics. type Versioned: sbor::Versioned; const DISCRIMINATOR: u8; type OwnedSborVariant; type BorrowedSborVariant<'a> where Self: 'a; /// 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())`. fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_>; /// Can be used to decode the type from an encoded variant, like this: /// `X::from_decoded_variant(decoder.decode()?)`. fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self where Self: core::marker::Sized; fn into_versioned(self) -> Self::Versioned; } $($( impl #ImplGenerics #VersionTrait for $version_type { type Versioned = #VersionedType; const DISCRIMINATOR: u8 = #discriminators::[!ident! VERSION_ $version_num]; type OwnedSborVariant = sbor::SborFixedEnumVariant::<{ #discriminators::[!ident! VERSION_ $version_num] }, (Self,)>; type BorrowedSborVariant<'a> = sbor::SborFixedEnumVariant::<{ #discriminators::[!ident! VERSION_ $version_num] }, (&'a Self,)> where Self: 'a; fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_> { sbor::SborFixedEnumVariant::new((self,)) } fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self { variant.into_fields().0 } fn into_versioned(self) -> Self::Versioned { #VersionedTypePath::new(self.into()) } } )*)? impl #ImplGenerics #VersionTrait for $latest_version_type { type Versioned = $versioned_name #TypeGenerics; const DISCRIMINATOR: u8 = #discriminators::LATEST_VERSION; type OwnedSborVariant = sbor::SborFixedEnumVariant::<{ #discriminators::LATEST_VERSION }, (Self,)>; type BorrowedSborVariant<'a> = sbor::SborFixedEnumVariant::<{ #discriminators::LATEST_VERSION }, (&'a Self,)> where Self: 'a; fn as_encodable_variant(&self) -> Self::BorrowedSborVariant<'_> { sbor::SborFixedEnumVariant::new((self,)) } fn from_decoded_variant(variant: Self::OwnedSborVariant) -> Self { variant.into_fields().0 } fn into_versioned(self) -> Self::Versioned { #VersionedTypePath::new(self.into()) } } }, (&'a TransactionValidationConfigV1,)> where Self: 'a

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

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

Source§

impl Copy for TransactionValidationConfigV1

Source§

impl Eq for TransactionValidationConfigV1

Source§

impl StructuralPartialEq for TransactionValidationConfigV1

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<U> As for U

Source§

fn as_<T>(self) -> T
where T: CastFrom<U>,

Casts self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T, U> ContextualTryInto<U> for T
where U: ContextualTryFrom<T>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<X, Y> LabelledResolve<Y> for X
where Y: LabelledResolveFrom<X>,

Source§

fn labelled_resolve( self, resolver: &impl LabelResolver<<Y as LabelledResolvable>::ResolverOutput>, ) -> Y

Source§

impl<T> ResolvableArguments for T

Source§

impl<X, Y> Resolve<Y> for X
where Y: ResolveFrom<X>,

Source§

fn resolve(self) -> Y

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> BasicCategorize for T

Source§

impl<T> BasicDecode for T

Source§

impl<T> BasicDescribe for T

Source§

impl<T> BasicEncode for T

Source§

impl<T> BasicSbor for T

Source§

impl<T> BasicSborTuple for T

Source§

impl<T> ManifestCategorize for T

Source§

impl<T> ManifestDecode for T

Source§

impl<T> ManifestEncode for T

Source§

impl<T> ManifestSborTuple for T

Source§

impl<T> ScryptoCategorize for T

Source§

impl<T> ScryptoDecode for T

Source§

impl<T> ScryptoDescribe for T

Source§

impl<T> ScryptoEncode for T

Source§

impl<T> ScryptoSbor for T

Source§

impl<T> ScryptoSborTuple for T

Source§

impl<X, T> VecDecode<X> for T
where X: CustomValueKind, T: for<'a> Decode<X, VecDecoder<'a, X>>,

Source§

impl<X, T> VecEncode<X> for T
where X: CustomValueKind, T: for<'a> Encode<X, VecEncoder<'a, X>> + ?Sized,

Source§

impl<E, T> VecSbor<E> for T