referrerpolicy=no-referrer-when-downgrade

Enum pallet_revive::pallet::Call

source ·
pub enum Call<T: Config>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,
{ eth_transact { payload: Vec<u8>, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, }, call { dest: H160, value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, data: Vec<u8>, }, instantiate { value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, code_hash: H256, data: Vec<u8>, salt: Option<[u8; 32]>, }, instantiate_with_code { value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, code: Vec<u8>, data: Vec<u8>, salt: Option<[u8; 32]>, }, upload_code { code: Vec<u8>, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, }, remove_code { code_hash: H256, }, set_code { dest: H160, code_hash: H256, }, map_account {}, unmap_account {}, dispatch_as_fallback_account { call: Box<<T as Config>::RuntimeCall>, }, // some variants omitted }
Expand description

Contains a variant per dispatchable extrinsic that this pallet has.

Variants§

§

eth_transact

A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server.

§Parameters

  • payload: The encoded crate::evm::TransactionSigned.
  • gas_limit: The gas limit enforced during contract execution.
  • storage_deposit_limit: The maximum balance that can be charged to the caller for storage usage.

§Note

This call cannot be dispatched directly; attempting to do so will result in a failed transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the runtime converts it into a [sp_runtime::generic::CheckedExtrinsic] by recovering the signer and validating the transaction.

Fields

§payload: Vec<u8>
§gas_limit: Weight
§storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§

call

Makes a call to an account, optionally transferring some balance.

§Parameters

  • dest: Address of the contract to call.

  • value: The balance to transfer from the origin to dest.

  • gas_limit: The gas limit enforced when executing the constructor.

  • storage_deposit_limit: The maximum amount of balance that can be charged from the caller to pay for the storage consumed.

  • data: The input data to pass to the contract.

  • If the account is a smart-contract account, the associated code will be executed and any value will be transferred.

  • If the account is a regular account, any value will be transferred.

  • If no account exists and the call value is not less than existential_deposit, a regular account will be created and any value will be transferred.

Fields

§dest: H160
§value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§gas_limit: Weight
§storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§data: Vec<u8>
§

instantiate

Instantiates a contract from a previously deployed wasm binary.

This function is identical to Self::instantiate_with_code but without the code deployment step. Instead, the code_hash of an on-chain deployed wasm binary must be supplied.

Fields

§value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§gas_limit: Weight
§storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§code_hash: H256
§data: Vec<u8>
§salt: Option<[u8; 32]>
§

instantiate_with_code

Instantiates a new contract from the supplied code optionally transferring some balance.

This dispatchable has the same effect as calling Self::upload_code + Self::instantiate. Bundling them together provides efficiency gains. Please also check the documentation of Self::upload_code.

§Parameters

  • value: The balance to transfer from the origin to the newly created contract.
  • gas_limit: The gas limit enforced when executing the constructor.
  • storage_deposit_limit: The maximum amount of balance that can be charged/reserved from the caller to pay for the storage consumed.
  • code: The contract code to deploy in raw bytes.
  • data: The input data to pass to the contract constructor.
  • salt: Used for the address derivation. If Some is supplied then CREATE2 semantics are used. If None then CRATE1 is used.

Instantiation is executed as follows:

  • The supplied code is deployed, and a code_hash is created for that code.
  • If the code_hash already exists on the chain the underlying code will be shared.
  • The destination address is computed based on the sender, code_hash and the salt.
  • The smart-contract account is created at the computed address.
  • The value is transferred to the new account.
  • The deploy function is executed in the context of the newly-created account.

Fields

§value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§gas_limit: Weight
§storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§code: Vec<u8>
§data: Vec<u8>
§salt: Option<[u8; 32]>
§

upload_code

Upload new code without instantiating a contract from it.

If the code does not already exist a deposit is reserved from the caller and unreserved only when Self::remove_code is called. The size of the reserve depends on the size of the supplied code.

§Note

Anyone can instantiate a contract from any uploaded code and thus prevent its removal. To avoid this situation a constructor could employ access control so that it can only be instantiated by permissioned entities. The same is true when uploading through Self::instantiate_with_code.

Fields

§code: Vec<u8>
§storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance
§

remove_code

Remove the code stored under code_hash and refund the deposit to its owner.

A code can only be removed by its original uploader (its owner) and only if it is not used by any contract.

Fields

§code_hash: H256
§

set_code

Privileged function that changes the code of an existing contract.

This takes care of updating refcounts and all other necessary operations. Returns an error if either the code_hash or dest do not exist.

§Note

This does not change the address of the contract in question. This means that the contract address is no longer derived from its code hash after calling this dispatchable.

Fields

§dest: H160
§code_hash: H256
§

map_account

Register the callers account id so that it can be used in contract interactions.

This will error if the origin is already mapped or is a eth native Address20. It will take a deposit that can be released by calling Self::unmap_account.

§

unmap_account

Unregister the callers account id in order to free the deposit.

There is no reason to ever call this function other than freeing up the deposit. This is only useful when the account should no longer be used.

§

dispatch_as_fallback_account

Dispatch an call with the origin set to the callers fallback address.

Every AccountId32 can control its corresponding fallback account. The fallback account is the AccountId20 with the last 12 bytes set to 0xEE. This is essentially a recovery function in case an AccountId20 was used without creating a mapping first.

Fields

§call: Box<<T as Config>::RuntimeCall>

Implementations§

source§

impl<T: Config> Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source

pub fn new_call_variant_eth_transact( payload: Vec<u8>, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, ) -> Self

Create a call with the variant eth_transact.

source

pub fn new_call_variant_call( dest: H160, value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, data: Vec<u8>, ) -> Self

Create a call with the variant call.

source

pub fn new_call_variant_instantiate( value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, code_hash: H256, data: Vec<u8>, salt: Option<[u8; 32]>, ) -> Self

Create a call with the variant instantiate.

source

pub fn new_call_variant_instantiate_with_code( value: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, gas_limit: Weight, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, code: Vec<u8>, data: Vec<u8>, salt: Option<[u8; 32]>, ) -> Self

Create a call with the variant instantiate_with_code.

source

pub fn new_call_variant_upload_code( code: Vec<u8>, storage_deposit_limit: <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance, ) -> Self

Create a call with the variant upload_code.

source

pub fn new_call_variant_remove_code(code_hash: H256) -> Self

Create a call with the variant remove_code.

source

pub fn new_call_variant_set_code(dest: H160, code_hash: H256) -> Self

Create a call with the variant set_code.

source

pub fn new_call_variant_map_account() -> Self

Create a call with the variant map_account.

source

pub fn new_call_variant_unmap_account() -> Self

Create a call with the variant unmap_account.

source

pub fn new_call_variant_dispatch_as_fallback_account( call: Box<<T as Config>::RuntimeCall>, ) -> Self

Create a call with the variant dispatch_as_fallback_account.

Trait Implementations§

source§

impl<T: Config> CheckIfFeeless for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

§

type Origin = <T as Config>::RuntimeOrigin

The Origin type of the runtime.
source§

fn is_feeless(&self, origin: &Self::Origin) -> bool

Checks if the dispatchable satisfies the feeless condition as defined by #[pallet::feeless_if]
source§

impl<T: Config> Clone for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn clone(&self) -> Self

Returns a copy 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<T: Config> Debug for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

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

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

impl<T: Config> Decode for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>

Attempt to deserialise the value from input.
§

fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self>, ) -> Result<DecodeFinished, Error>
where I: Input,

Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§

fn skip<I>(input: &mut I) -> Result<(), Error>
where I: Input,

Attempt to skip the encoded value from input. Read more
§

fn encoded_fixed_size() -> Option<usize>

Returns the fixed encoded size of the type. Read more
source§

impl<T: Config> Encode for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn size_hint(&self) -> usize

If possible give a hint of expected size of the encoding. Read more
source§

fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )

Convert self to a slice and append it to the destination.
§

fn encode(&self) -> Vec<u8>

Convert self to an owned vector.
§

fn using_encoded<R, F>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Convert self to a slice and then invoke the given closure with it.
§

fn encoded_size(&self) -> usize

Calculates the encoded size. Read more
source§

impl<T: Config> GetCallIndex for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn get_call_index(&self) -> u8

Return the index of this Call.
source§

fn get_call_indices() -> &'static [u8]

Return all call indices in the same order as [GetCallName].
source§

impl<T: Config> GetCallName for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn get_call_name(&self) -> &'static str

Return the function name of the Call.
source§

fn get_call_names() -> &'static [&'static str]

Return all function names in the same order as [GetCallIndex].
source§

impl<T: Config> GetDispatchInfo for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

fn get_dispatch_info(&self) -> DispatchInfo

Return a DispatchInfo, containing relevant information of this dispatch. Read more
source§

impl<T: Config> PartialEq for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T> TypeInfo for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256> + HasCompact, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>, PhantomData<(T,)>: TypeInfo + 'static, Box<<T as Config>::RuntimeCall>: TypeInfo + 'static, T: Config + 'static,

§

type Identity = Call<T>

The type identifying for which type info is provided. Read more
source§

fn type_info() -> Type

Returns the static type identifier for Self.
source§

impl<T: Config> UnfilteredDispatchable for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

§

type RuntimeOrigin = <T as Config>::RuntimeOrigin

The origin type of the runtime, (i.e. frame_system::Config::RuntimeOrigin).
source§

fn dispatch_bypass_filter( self, origin: Self::RuntimeOrigin, ) -> DispatchResultWithPostInfo

Dispatch this call but do not check the filter in origin.
source§

impl<T: Config> EncodeLike for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

source§

impl<T: Config> Eq for Call<T>
where <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Into<U256> + TryFrom<U256>, MomentOf<T>: Into<U256>, T::Hash: IsType<H256>,

Auto Trait Implementations§

§

impl<T> Freeze for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized + Freeze,

§

impl<T> RefUnwindSafe for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized + RefUnwindSafe, T: RefUnwindSafe, <T as Config>::RuntimeCall: RefUnwindSafe,

§

impl<T> Send for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized, T: Send, <T as Config>::RuntimeCall: Send,

§

impl<T> Sync for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized, T: Sync, <T as Config>::RuntimeCall: Sync,

§

impl<T> Unpin for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized + Unpin, T: Unpin,

§

impl<T> UnwindSafe for Call<T>
where <T as Config>::Hash: Sized, <<T as Config>::Time as Time>::Moment: Sized, <<T as Config>::Currency as Inspect<<T as Config>::AccountId>>::Balance: Sized + UnwindSafe, T: UnwindSafe, <T as Config>::RuntimeCall: UnwindSafe,

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<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
§

impl<T> CheckedConversion for T

§

fn checked_from<T>(t: T) -> Option<Self>
where Self: TryFrom<T>,

Convert from a value of T into an equivalent instance of Option<Self>. Read more
§

fn checked_into<T>(self) -> Option<T>
where Self: TryInto<T>,

Consume self to return Some equivalent value of Option<T>. Read more
source§

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

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> DecodeAll for T
where T: Decode,

§

fn decode_all(input: &mut &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
§

impl<T> DecodeLimit for T
where T: Decode,

§

fn decode_all_with_depth_limit( limit: u32, input: &mut &[u8], ) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
§

fn decode_with_depth_limit<I>(limit: u32, input: &mut I) -> Result<T, Error>
where I: Input,

Decode Self with the given maximum recursion depth and advance input by the number of bytes consumed. Read more
source§

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

source§

fn __clone_box(&self, _: Private) -> *mut ()

§

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

§

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

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

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

§

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

Compare self to key and return true if they are equal.
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.
§

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

§

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

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

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

§

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

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

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> Hashable for T
where T: Codec,

§

fn blake2_128(&self) -> [u8; 16]

§

fn blake2_256(&self) -> [u8; 32]

§

fn blake2_128_concat(&self) -> Vec<u8>

§

fn twox_128(&self) -> [u8; 16]

§

fn twox_256(&self) -> [u8; 32]

§

fn twox_64_concat(&self) -> Vec<u8>

§

fn identity(&self) -> Vec<u8>

§

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> IntoKey<U> for T
where U: FromKey<T>,

§

fn into_key(self) -> U

§

impl<Src, Dest> IntoTuple<Dest> for Src
where Dest: FromTuple<Src>,

§

fn into_tuple(self) -> Dest

§

impl<T> IsType<T> for T

§

fn from_ref(t: &T) -> &T

Cast reference.
§

fn into_ref(&self) -> &T

Cast reference.
§

fn from_mut(t: &mut T) -> &mut T

Cast mutable reference.
§

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

Cast mutable reference.
§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T, Outer> IsWrappedBy<Outer> for T
where Outer: AsRef<T> + AsMut<T> + From<T>, T: From<Outer>,

§

fn from_ref(outer: &Outer) -> &T

Get a reference to the inner from the outer.

§

fn from_mut(outer: &mut Outer) -> &mut T

Get a mutable reference to the inner from the outer.

§

impl<T> KeyedVec for T
where T: Codec,

§

fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8>

Return an encoding of Self prepended by given slice.
§

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

impl<T> Same for T

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where Self: UniqueSaturatedInto<T>,

Consume self to return an equivalent value of T. Read more
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
§

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,

§

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

§

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

§

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> TryIntoKey<U> for T
where U: TryFromKey<T>,

§

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

§

fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>

§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<S, T> UncheckedInto<T> for S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

impl<T, S> UniqueSaturatedInto<T> for S
where T: Bounded, S: TryInto<T>,

§

fn unique_saturated_into(self) -> T

Consume self to return an equivalent value of T.
§

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
§

impl<S> Codec for S
where S: Decode + Encode,

§

impl<T> EncodeLike<&&T> for T
where T: Encode,

§

impl<T> EncodeLike<&T> for T
where T: Encode,

§

impl<T> EncodeLike<&mut T> for T
where T: Encode,

§

impl<T> EncodeLike<Arc<T>> for T
where T: Encode,

§

impl<T> EncodeLike<Box<T>> for T
where T: Encode,

§

impl<'a, T> EncodeLike<Cow<'a, T>> for T
where T: ToOwned + Encode,

§

impl<T> EncodeLike<Rc<T>> for T
where T: Encode,

§

impl<S> FullCodec for S
where S: Decode + FullEncode,

§

impl<S> FullEncode for S
where S: Encode + EncodeLike,

§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,

§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,

§

impl<T> Parameter for T
where T: Codec + EncodeLike + Clone + Eq + Debug + TypeInfo,

source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,

§

impl<T> StaticTypeInfo for T
where T: TypeInfo + 'static,