Skip to main content

StateTransition

Enum StateTransition 

Source
pub enum StateTransition {
Show 24 variants DataContractCreate(DataContractCreateTransition), DataContractUpdate(DataContractUpdateTransition), Batch(BatchTransition), IdentityCreate(IdentityCreateTransition), IdentityTopUp(IdentityTopUpTransition), IdentityCreditWithdrawal(IdentityCreditWithdrawalTransition), IdentityUpdate(IdentityUpdateTransition), IdentityCreditTransfer(IdentityCreditTransferTransition), MasternodeVote(MasternodeVoteTransition), IdentityCreditTransferToAddresses(IdentityCreditTransferToAddressesTransition), IdentityCreateFromAddresses(IdentityCreateFromAddressesTransition), IdentityTopUpFromAddresses(IdentityTopUpFromAddressesTransition), AddressFundsTransfer(AddressFundsTransferTransition), AddressFundingFromAssetLock(AddressFundingFromAssetLockTransition), AddressCreditWithdrawal(AddressCreditWithdrawalTransition), Shield(ShieldTransition), ShieldedTransfer(ShieldedTransferTransition), Unshield(UnshieldTransition), ShieldFromAssetLock(ShieldFromAssetLockTransition), ShieldedWithdrawal(ShieldedWithdrawalTransition), IdentityCreateFromShieldedPool(IdentityCreateFromShieldedPoolTransition), ShieldFromIdentity(ShieldFromIdentityTransition), IdentityTopUpFromShieldedPool(IdentityTopUpFromShieldedPoolTransition), IdentityKeyLimitsUpdate(IdentityKeyLimitsUpdateTransition),
}

Variants§

§

DataContractCreate(DataContractCreateTransition)

§

DataContractUpdate(DataContractUpdateTransition)

§

Batch(BatchTransition)

§

IdentityCreate(IdentityCreateTransition)

§

IdentityTopUp(IdentityTopUpTransition)

§

IdentityCreditWithdrawal(IdentityCreditWithdrawalTransition)

§

IdentityUpdate(IdentityUpdateTransition)

§

IdentityCreditTransfer(IdentityCreditTransferTransition)

§

MasternodeVote(MasternodeVoteTransition)

§

IdentityCreditTransferToAddresses(IdentityCreditTransferToAddressesTransition)

§

IdentityCreateFromAddresses(IdentityCreateFromAddressesTransition)

§

IdentityTopUpFromAddresses(IdentityTopUpFromAddressesTransition)

§

AddressFundsTransfer(AddressFundsTransferTransition)

§

AddressFundingFromAssetLock(AddressFundingFromAssetLockTransition)

§

AddressCreditWithdrawal(AddressCreditWithdrawalTransition)

§

Shield(ShieldTransition)

§

ShieldedTransfer(ShieldedTransferTransition)

§

Unshield(UnshieldTransition)

§

ShieldFromAssetLock(ShieldFromAssetLockTransition)

§

ShieldedWithdrawal(ShieldedWithdrawalTransition)

§

IdentityCreateFromShieldedPool(IdentityCreateFromShieldedPoolTransition)

§

ShieldFromIdentity(ShieldFromIdentityTransition)

§

IdentityTopUpFromShieldedPool(IdentityTopUpFromShieldedPoolTransition)

§

IdentityKeyLimitsUpdate(IdentityKeyLimitsUpdateTransition)

Implementations§

Source§

impl StateTransition

Source

pub fn deserialize_many_untrusted( raw_state_transitions: &[Vec<u8>], ) -> Result<Vec<Self>, ProtocolError>

Source§

impl StateTransition

Source

pub fn deserialize_from_bytes_untrusted_in_version( bytes: &[u8], platform_version: &PlatformVersion, ) -> Result<Self, ProtocolError>

Source

pub fn active_version_range(&self) -> RangeInclusive<ProtocolVersion>

Source

pub fn is_identity_signed(&self) -> bool

Source

pub fn required_asset_lock_balance_for_processing_start( &self, platform_version: &PlatformVersion, ) -> Result<Credits, ProtocolError>

Source

pub fn name(&self) -> String

Returns state transition name

Source

pub fn signature(&self) -> Option<&BinaryData>

returns the signature as a byte-array

Source

pub fn required_number_of_private_keys(&self) -> u16

returns the number of private keys

Source

pub fn user_fee_increase(&self) -> UserFeeIncrease

returns the fee_increase additional percentage multiplier, it affects only processing costs

Source

pub fn transaction_id(&self) -> Result<[u8; 32], ProtocolError>

The transaction id is a single hash of the data with the signature

Source

pub fn signature_public_key_id(&self) -> Option<KeyID>

returns the signature as a byte-array

Source

pub fn security_level_requirement( &self, purpose: Purpose, ) -> Option<Vec<SecurityLevel>>

returns the key security level requirement for the state transition

Source

pub fn purpose_requirement(&self) -> Option<Vec<Purpose>>

returns the key purpose requirement for the state transition

Source

pub fn owner_id(&self) -> Option<Identifier>

returns the signature as a byte-array

Source

pub fn inputs( &self, ) -> Option<&BTreeMap<PlatformAddress, (AddressNonce, Credits)>>

returns the signature as a byte-array

Source

pub fn state_transition_type(&self) -> StateTransitionType

returns the state transition type

Source

pub fn unique_identifiers(&self) -> Vec<String>

returns the unique identifiers for the state transition

Source

pub fn set_signature(&mut self, signature: BinaryData) -> bool

set a new signature

Source

pub fn set_user_fee_increase(&mut self, user_fee_increase: UserFeeIncrease)

set fee multiplier

Source

pub fn set_signature_public_key_id(&mut self, public_key_id: KeyID)

set a new signature

Source

pub async fn sign_external<S: Signer<IdentityPublicKey>>( &mut self, identity_public_key: &IdentityPublicKey, signer: &S, get_data_contract_security_level_requirement: Option<impl Fn(Identifier, String) -> Result<SecurityLevel, ProtocolError>>, ) -> Result<(), ProtocolError>

Source

pub async fn sign_external_with_options<S: Signer<IdentityPublicKey>>( &mut self, identity_public_key: &IdentityPublicKey, signer: &S, get_data_contract_security_level_requirement: Option<impl Fn(Identifier, String) -> Result<SecurityLevel, ProtocolError>>, options: StateTransitionSigningOptions, ) -> Result<(), ProtocolError>

Source

pub fn sign( &mut self, identity_public_key: &IdentityPublicKey, private_key: &[u8], bls: &impl BlsModule, ) -> Result<(), ProtocolError>

Source

pub fn sign_with_options( &mut self, identity_public_key: &IdentityPublicKey, private_key: &[u8], bls: &impl BlsModule, options: StateTransitionSigningOptions, ) -> Result<(), ProtocolError>

Source

pub fn sign_by_private_key( &mut self, private_key: &[u8], key_type: KeyType, bls: &impl BlsModule, ) -> Result<(), ProtocolError>

Signs data with the private key

Source

pub async fn sign_with_core_signer<S: Signer>( &mut self, path: &DerivationPath, signer: &S, ) -> Result<(), ProtocolError>

Sign self.signable_bytes() with an external Core-wallet signer and store the resulting Core-ECDSA signature in the transition’s wrapper signature field.

§Position in the signing-primitive family

This is a primitive in the same family as Self::sign_by_private_key — it performs no validation of the transition variant, the key, or the relationship between them. It is the external-custody sibling of sign_by_private_key:

PrimitiveKey sourceValidation
Self::sign_by_private_keyraw &[u8] in host memorynone
sign_with_core_signerexternal signer (HSM / hardware wallet / secure enclave / remote signing service), key reached via BIP32 [DerivationPath]none

Both produce byte-identical wrapper signatures over the same digest when given the same underlying private key (proven by sign_with_signer_matches_sign_by_private_key_byte_for_byte in this file’s tests). The only difference is where the key bytes live: in host memory vs inside the signer’s trust boundary. The signer performs the derive + sign + zeroise sequence atomically; this function never sees raw key material, only a 32-byte digest and the resulting signature.

§Scope (what the BIP32 path means)

The path parameter selects a key in the signer’s Core wallet (BIP32-derived). For that path’s signature to be meaningful the transition’s wrapper signature field must itself carry a Core-key signature. Today that is exactly the four asset-lock-signed variants — IdentityCreate, IdentityTopUp, AddressFundingFromAssetLock, ShieldFromAssetLock — where the wrapper signature is the asset-lock proof signed by the credit output’s Core key.

For identity-signed variants (DataContractCreate, Batch, IdentityCreditTransfer, etc.) the wrapper signature is an identity-key signature paired with a signature_public_key_id, and the right external-signer entry point is Self::sign_external with a Signer<IdentityPublicKey>. Calling sign_with_core_signer on such a variant compiles and produces a structurally valid 65-byte signature, but the signature is semantically meaningless — Platform validation will reject the transition because the signature doesn’t match the expected identity public key and signature_public_key_id isn’t set. The same caveat applies to misusing sign_by_private_key, the sibling primitive — both rely on the caller passing a key the wrapper signature is meant to carry.

§Wire-format parity with sign_by_private_key

The byte layout of the stored signature mirrors dashcore::signer::sign:

  1. digest = double_sha256(self.signable_bytes()?)
  2. signer.sign_ecdsa(path, digest).await → non-recoverable (secp256k1::ecdsa::Signature, secp256k1::PublicKey).
  3. Recover the recovery id by trying all four candidates against the returned public key (libsecp256k1 normalises both signing paths to low-s form so the 64-byte r||s payload is bit-identical).
  4. Serialise as a 65-byte compact recoverable signature with the compressed prefix convention used by CompactSignature — i.e. [recovery_id + 27 + 4, r (32) || s (32)].
§Errors
Source

pub fn verify_identity_signed_signature( &self, public_key: &IdentityPublicKey, bls: &impl BlsModule, ) -> Result<(), ProtocolError>

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for StateTransition

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl<'__de, __Context> BorrowDecodeUntrusted<'__de, __Context> for StateTransition

Source§

fn borrow_decode_untrusted<__D: BorrowUntrustedDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Borrow-decode with explicit untrusted field dispatch and resource handling.
Source§

impl Clone for StateTransition

Source§

fn clone(&self) -> StateTransition

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for StateTransition

Source§

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

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

impl<__Context> Decode<__Context> for StateTransition

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl<__Context> DecodeUntrusted<__Context> for StateTransition

Source§

fn decode_untrusted<__D: UntrustedDecoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Decode with explicit untrusted field dispatch and resource handling.
Source§

impl<'de> Deserialize<'de> for StateTransition

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Encode for StateTransition

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.
Source§

impl From<&DataContractCreateTransitionV0> for StateTransition

Source§

fn from(value: &DataContractCreateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<&DataContractCreateTransitionV1> for StateTransition

Source§

fn from(value: &DataContractCreateTransitionV1) -> Self

Converts to this type from the input type.
Source§

impl From<&DataContractUpdateTransitionV0> for StateTransition

Source§

fn from(value: &DataContractUpdateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<AddressCreditWithdrawalTransition> for StateTransition

Source§

fn from(value: AddressCreditWithdrawalTransition) -> Self

Converts to this type from the input type.
Source§

impl From<AddressCreditWithdrawalTransitionV0> for StateTransition

Source§

fn from(value: AddressCreditWithdrawalTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<AddressFundingFromAssetLockTransition> for StateTransition

Source§

fn from(value: AddressFundingFromAssetLockTransition) -> Self

Converts to this type from the input type.
Source§

impl From<AddressFundingFromAssetLockTransitionV0> for StateTransition

Source§

fn from(value: AddressFundingFromAssetLockTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<AddressFundsTransferTransition> for StateTransition

Source§

fn from(value: AddressFundsTransferTransition) -> Self

Converts to this type from the input type.
Source§

impl From<AddressFundsTransferTransitionV0> for StateTransition

Source§

fn from(value: AddressFundsTransferTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransition> for StateTransition

Source§

fn from(value: BatchTransition) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransitionV0> for StateTransition

Source§

fn from(value: BatchTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<BatchTransitionV1> for StateTransition

Source§

fn from(value: BatchTransitionV1) -> Self

Converts to this type from the input type.
Source§

impl From<DataContractCreateTransition> for StateTransition

Source§

fn from(value: DataContractCreateTransition) -> Self

Converts to this type from the input type.
Source§

impl From<DataContractCreateTransitionV0> for StateTransition

Source§

fn from(value: DataContractCreateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<DataContractCreateTransitionV1> for StateTransition

Source§

fn from(value: DataContractCreateTransitionV1) -> Self

Converts to this type from the input type.
Source§

impl From<DataContractUpdateTransition> for StateTransition

Source§

fn from(value: DataContractUpdateTransition) -> Self

Converts to this type from the input type.
Source§

impl From<DataContractUpdateTransitionV0> for StateTransition

Source§

fn from(value: DataContractUpdateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateFromAddressesTransition> for StateTransition

Source§

fn from(value: IdentityCreateFromAddressesTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateFromAddressesTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreateFromAddressesTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateFromShieldedPoolTransition> for StateTransition

Source§

fn from(value: IdentityCreateFromShieldedPoolTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateFromShieldedPoolTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreateFromShieldedPoolTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateTransition> for StateTransition

Source§

fn from(value: IdentityCreateTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreateTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditTransferToAddressesTransition> for StateTransition

Source§

fn from(value: IdentityCreditTransferToAddressesTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditTransferToAddressesTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreditTransferToAddressesTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditTransferTransition> for StateTransition

Source§

fn from(value: IdentityCreditTransferTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditTransferTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreditTransferTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditWithdrawalTransition> for StateTransition

Source§

fn from(value: IdentityCreditWithdrawalTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditWithdrawalTransitionV0> for StateTransition

Source§

fn from(value: IdentityCreditWithdrawalTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityCreditWithdrawalTransitionV1> for StateTransition

Source§

fn from(value: IdentityCreditWithdrawalTransitionV1) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityKeyLimitsUpdateTransition> for StateTransition

Source§

fn from(value: IdentityKeyLimitsUpdateTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityKeyLimitsUpdateTransitionV0> for StateTransition

Source§

fn from(value: IdentityKeyLimitsUpdateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpFromAddressesTransition> for StateTransition

Source§

fn from(value: IdentityTopUpFromAddressesTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpFromAddressesTransitionV0> for StateTransition

Source§

fn from(value: IdentityTopUpFromAddressesTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpFromShieldedPoolTransition> for StateTransition

Source§

fn from(value: IdentityTopUpFromShieldedPoolTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpFromShieldedPoolTransitionV0> for StateTransition

Source§

fn from(value: IdentityTopUpFromShieldedPoolTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpTransition> for StateTransition

Source§

fn from(value: IdentityTopUpTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityTopUpTransitionV0> for StateTransition

Source§

fn from(value: IdentityTopUpTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityUpdateTransition> for StateTransition

Source§

fn from(value: IdentityUpdateTransition) -> Self

Converts to this type from the input type.
Source§

impl From<IdentityUpdateTransitionV0> for StateTransition

Source§

fn from(value: IdentityUpdateTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<MasternodeVoteTransition> for StateTransition

Source§

fn from(value: MasternodeVoteTransition) -> Self

Converts to this type from the input type.
Source§

impl From<MasternodeVoteTransitionV0> for StateTransition

Source§

fn from(value: MasternodeVoteTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldFromAssetLockTransition> for StateTransition

Source§

fn from(value: ShieldFromAssetLockTransition) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldFromAssetLockTransitionV0> for StateTransition

Source§

fn from(value: ShieldFromAssetLockTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldFromIdentityTransition> for StateTransition

Source§

fn from(value: ShieldFromIdentityTransition) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldFromIdentityTransitionV0> for StateTransition

Source§

fn from(value: ShieldFromIdentityTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldTransition> for StateTransition

Source§

fn from(value: ShieldTransition) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldTransitionV0> for StateTransition

Source§

fn from(value: ShieldTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldedTransferTransition> for StateTransition

Source§

fn from(value: ShieldedTransferTransition) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldedTransferTransitionV0> for StateTransition

Source§

fn from(value: ShieldedTransferTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldedWithdrawalTransition> for StateTransition

Source§

fn from(value: ShieldedWithdrawalTransition) -> Self

Converts to this type from the input type.
Source§

impl From<ShieldedWithdrawalTransitionV0> for StateTransition

Source§

fn from(value: ShieldedWithdrawalTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl From<UnshieldTransition> for StateTransition

Source§

fn from(value: UnshieldTransition) -> Self

Converts to this type from the input type.
Source§

impl From<UnshieldTransitionV0> for StateTransition

Source§

fn from(value: UnshieldTransitionV0) -> Self

Converts to this type from the input type.
Source§

impl JsonConvertible for StateTransition

Available on crate features json-conversion and serde-conversion only.
Source§

impl OptionallyAssetLockProved for StateTransition

Source§

fn optional_asset_lock_proof(&self) -> Option<&AssetLockProof>

Returns asset lock proof if state transition implements it
Source§

impl PartialEq for StateTransition

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 PlatformDeserializableTrusted for StateTransition

Source§

impl PlatformDeserializableUntrusted for StateTransition

Source§

impl PlatformSerializable for StateTransition

Source§

type Error = ProtocolError

Source§

fn serialize_to_bytes(&self) -> Result<Vec<u8>, Self::Error>

Source§

fn serialize_consume_to_bytes(self) -> Result<Vec<u8>, Self::Error>

If the trait is not used just do a simple serialize
Source§

impl PlatformVersionEncode for StateTransition

Source§

fn platform_encode<__E: Encoder>( &self, encoder: &mut __E, platform_version: &PlatformVersion, ) -> Result<(), EncodeError>

Encode a given type.
Source§

impl<'__de> PlatformVersionedBorrowDecode<'__de> for StateTransition

Source§

fn platform_versioned_borrow_decode<__D: BorrowDecoder<'__de, Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl PlatformVersionedDecode for StateTransition

Source§

fn platform_versioned_decode<__D: Decoder<Context = BincodeContext>>( decoder: &mut __D, platform_version: &PlatformVersion, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl Serialize for StateTransition

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Signable for StateTransition

Source§

impl StateTransitionStructureValidation for StateTransition

Available on crate feature state-transition-validation only.
Source§

fn validate_structure( &self, platform_version: &PlatformVersion, ) -> SimpleConsensusValidationResult

Validates the structure of the state transition
Source§

impl StructuralPartialEq for StateTransition

Source§

impl TryFromPlatformVersioned<CreatedDataContract> for StateTransition

Source§

type Error = ProtocolError

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

fn try_from_platform_versioned( value: CreatedDataContract, platform_version: &PlatformVersion, ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl ValueConvertible for StateTransition

Available on crate features serde-conversion and value-conversion only.
Source§

fn to_object(&self) -> Result<Value, ProtocolError>
where Self: Sized,

Source§

fn into_object(self) -> Result<Value, ProtocolError>
where Self: Sized,

Source§

fn from_object(value: Value) -> Result<Self, ProtocolError>
where Self: Sized,

Source§

fn from_object_ref(value: &Value) -> Result<Self, ProtocolError>
where Self: Sized,

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<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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> CostsExt for T

§

fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>
where Self: Sized,

Wraps any value into a CostContext object with provided costs.
§

fn wrap_fn_cost( self, f: impl FnOnce(&Self) -> OperationCost, ) -> CostContext<Self>
where Self: Sized,

Wraps any value into CostContext object with costs computed using the value getting wrapped.
§

impl<'de, T> DefaultBorrowDecode<'de> for T
where T: BorrowDecode<'de, ()>,

§

fn borrow_decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: BorrowDecoder<'de, Context = ()>, Self: Sized,

§

impl<T> DefaultDecode for T
where T: Decode<()>,

§

fn decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: Decoder<Context = ()>, Self: Sized,

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T, U> IntoOnNetwork<U> for T
where U: FromOnNetwork<T>,

§

fn into_on_network(self, network: Network) -> U

Calls U::from_on_network(self).

§

impl<T, U> IntoPlatformVersioned<U> for T

§

fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U

Performs the conversion.
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

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

§

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

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

fn try_from_versioned( value: U, _grove_version: &GroveVersion, ) -> Result<T, <T as TryFromVersioned<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.
§

impl<T, U> TryIntoPlatformVersioned<U> for T

§

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

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

fn try_into_platform_versioned( self, platform_version: &PlatformVersion, ) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoVersioned<U> for T
where U: TryFromVersioned<T>,

§

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

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

fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoWithBlockHashLookup<U> for T
where U: TryFromWithBlockHashLookup<T>,

§

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

§

fn try_into_with_block_hash_lookup<F>( self, block_hash_lookup: F, network: Network, ) -> Result<U, <T as TryIntoWithBlockHashLookup<U>>::Error>
where F: Fn(&BlockHash) -> Option<u32>,

Converts self into T, using a block hash lookup function.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more