pub struct Pallet<T>(_);
Expand description

The Pallet struct, the main type that implements traits and standalone functions within the pallet.

Implementations§

source§

impl<T: Config> Pallet<T>

source

pub fn register_attester( origin: OriginFor<T>, self_nominate_amount: BalanceOf<T>, ecdsa_key: [u8; 33], ed25519_key: [u8; 32], sr25519_key: [u8; 32], custom_commission: Option<Percent> ) -> DispatchResult

source

pub fn register_invulnerable_attester( origin: OriginFor<T>, self_nominate_amount: BalanceOf<T>, ecdsa_key: [u8; 33], ed25519_key: [u8; 32], sr25519_key: [u8; 32], custom_commission: Option<Percent> ) -> DispatchResult

source

pub fn deregister_attester(origin: OriginFor<T>) -> DispatchResult

source

pub fn remove_attestation_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult

source

pub fn agree_to_new_attestation_target( origin: OriginFor<T>, target: TargetId, recoverable: Vec<u8> ) -> DispatchResult

source

pub fn force_activate_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult

source

pub fn add_attestation_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult

source

pub fn submit_attestation( origin: OriginFor<T>, message: H256, signature: Vec<u8>, target: TargetId ) -> DispatchResult

source

pub fn commit_batch( origin: OriginFor<T>, target: TargetId, target_inclusion_proof_encoded: Vec<u8> ) -> DispatchResult

source

pub fn read_pending_batches(origin: OriginFor<T>) -> DispatchResult

source

pub fn read_latest_batching_factor_overview( origin: OriginFor<T> ) -> DispatchResult

source

pub fn estimate_user_finality_fee( origin: OriginFor<T>, target: TargetId ) -> DispatchResult

source

pub fn nominate( origin: OriginFor<T>, attester: T::AccountId, amount: BalanceOf<T> ) -> DispatchResult

source

pub fn unnominate( origin: OriginFor<T>, attester: T::AccountId ) -> DispatchResult

source§

impl<T: Config> Pallet<T>

source

pub fn committee_size() -> usize

source

pub fn apply_partial_stake_slash( attester: T::AccountId, nominations: Vec<(T::AccountId, BalanceOf<T>)>, percent_slash: Percent, percent_nominator_grace: Percent ) -> (BalanceOf<T>, Vec<(T::AccountId, BalanceOf<T>)>)

This function applies a partial slash to the stakes of an attester and its nominators. It returns the self-nomination balance of the given attester and the updated nomination balances of the nominators with an applied grace percent.

Parameters
  • attester: The account ID of the attester whose stake is being slashed.
  • nominations: A vector of tuples where each tuple represents a nominator and its balance.
  • percent_slash: The percent of stake to slash from the attester.
  • percent_nominator_grace: The percent of stake to slash from the nominators.
Returns

This function returns a tuple containing two elements:

  • The first element is the self-nomination balance of the attester after the slash has been applied.
  • The second element is a vector of tuples where each tuple represents a nominator and its balance after the slash has been applied.

If the attester is not found in the nominations, the function returns zero as the self-nomination balance and an empty vector as the list of nominators.

source

pub fn find_and_set_batch_as_committed( target: TargetId, message_hash: &H256 ) -> DispatchResult

source

pub fn reward_submitter( submitter: &T::AccountId, submitter_on_target: &H160, target: &TargetId, to_pay: BalanceOf<T> ) -> DispatchResult

source

pub fn try_activate_new_target(target: &TargetId) -> bool

source

pub fn is_last_transition_attested() -> bool

source

pub fn get_batches( target: TargetId, by_status: BatchStatus ) -> Vec<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_batch_by_message( target: TargetId, message: Vec<u8> ) -> Option<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_batch_by_message_hash( target: TargetId, message_hash: H256 ) -> Option<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_batches_to_commit( target: TargetId ) -> Vec<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_latest_batch_to_commit( target: TargetId ) -> Option<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_all_batches_to_sign( target: TargetId ) -> Vec<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_latest_batch_to_sign( target: TargetId ) -> Option<BatchMessage<BlockNumberFor<T>>>

source

pub fn get_latest_batch_to_sign_hash(target: TargetId) -> Option<H256>

source

pub fn get_latest_batch_to_sign_message(target: TargetId) -> Option<Vec<u8>>

source

pub fn do_nominate( nominator: &T::AccountId, attester: &T::AccountId, amount: BalanceOf<T> ) -> DispatchResult

source

pub fn get_current_committee_transition_for_target( target: &TargetId ) -> CommitteeTransition

source

pub fn get_current_committee_indices() -> CommitteeTransitionIndices

source

pub fn process_repatriations( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight

source

pub fn process_next_batch_window( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight

source

pub fn is_permanently_slashed(account: &T::AccountId) -> bool

source

pub fn process_pending_unnominations( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight

source§

impl<T: Config> Pallet<T>

source

pub fn attesters<KArg>(k: KArg) -> Option<AttesterInfo>where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for Attesters.

source§

impl<T: Config> Pallet<T>

source

pub fn sorted_nominated_attesters() -> Vec<(T::AccountId, BalanceOf<T>)>

An auto-generated getter for SortedNominatedAttesters.

source§

impl<T: Config> Pallet<T>

source

pub fn active_set() -> Vec<T::AccountId>

An auto-generated getter for ActiveSet.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_slashes() -> Vec<T::AccountId>

An auto-generated getter for PermanentSlashes.

source§

impl<T: Config> Pallet<T>

source

pub fn invulnerable_attester() -> Option<T::AccountId>

An auto-generated getter for InvulnerableAttester.

source§

impl<T: Config> Pallet<T>

source

pub fn attestation_targets() -> Vec<TargetId>

An auto-generated getter for AttestationTargets.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_attestation_targets() -> Vec<TargetId>

An auto-generated getter for PendingAttestationTargets.

source§

impl<T: Config> Pallet<T>

source

pub fn attesters_agreements<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> Option<Vec<u8>>where KArg1: EncodeLike<T::AccountId>, KArg2: EncodeLike<TargetId>,

An auto-generated getter for AttestersAgreements.

source§

impl<T: Config> Pallet<T>

source

pub fn next_batches<KArg>(k: KArg) -> Option<BatchMessage<BlockNumberFor<T>>>where KArg: EncodeLike<TargetId>,

An auto-generated getter for NextBatch.

source§

impl<T: Config> Pallet<T>

source

pub fn next_committee_on_target<KArg>(k: KArg) -> Option<CommitteeTransition>where KArg: EncodeLike<TargetId>,

An auto-generated getter for NextCommitteeOnTarget.

source§

impl<T: Config> Pallet<T>

source

pub fn batches_to_sign<KArg>( k: KArg ) -> Option<Vec<BatchMessage<BlockNumberFor<T>>>>where KArg: EncodeLike<TargetId>,

An auto-generated getter for BatchesToSign.

source§

impl<T: Config> Pallet<T>

source

pub fn batches<KArg>(k: KArg) -> Option<Vec<BatchMessage<BlockNumberFor<T>>>>where KArg: EncodeLike<TargetId>,

An auto-generated getter for Batches.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_unnominations<KArg>( k: KArg ) -> Option<Vec<(T::AccountId, BalanceOf<T>, BlockNumberFor<T>)>>where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for PendingUnnominations.

source§

impl<T: Config> Pallet<T>

source

pub fn nominations<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> Option<BalanceOf<T>>where KArg1: EncodeLike<T::AccountId>, KArg2: EncodeLike<T::AccountId>,

An auto-generated getter for Nominations.

source§

impl<T: Config> Pallet<T>

source

pub fn paid_finality_fees<KArg>(k: KArg) -> Option<Vec<BalanceOf<T>>>where KArg: EncodeLike<TargetId>,

An auto-generated getter for PaidFinalityFees.

Trait Implementations§

source§

impl<T: Config> AttestersReadApi<<T as Config>::AccountId, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, <<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

Finality Fee Estimation and User Base Projection

This module provides functionalities for estimating future finality fees and user base in a decentralized system, drawing inspiration from the concept of a pension scheme.

Overview

The aim of this module is to estimate future fees and user base in a way that balances the interests of all participants. This is achieved by employing methods similar to those used in pension systems, where fees paid by current participants are used to support earlier generations.

Two primary functions provided by this module are:

  1. estimate_user_finality_fee
  2. estimate_future_user_base
Functionality
estimate_user_finality_fee

This function estimates the finality fee for an individual user. The function considers the total fee paid in the most recent epoch and divides it by the number of users in that epoch to calculate a base user fee. An overcharge factor is then added to this base fee to account for fluctuations and provide a buffer. This calculation mirrors the process in pension systems where individual contributions are calculated based on total liabilities and the number of current contributors.

estimate_future_user_base

The estimate_future_user_base function forecasts the user base size for a future epoch. The function calculates the average growth rate of the user base over the past few epochs and applies this rate iteratively to project future growth. This function is similar to population projections in pension systems, which are critical in determining future contribution rates.

Concluding Remarks

The functions in this module draw inspiration from pension systems, projecting future conditions based on past data and current trends. While the context is different – a decentralized system instead of a pension scheme – the fundamental concepts are the same. The ability to estimate future fees and user base size contributes to system sustainability and fairness, much like in a well-managed pension scheme.

source§

fn previous_committee() -> Vec<T::AccountId>

Getter for the current committee. Returns a Vec of AccountIds.

source§

fn current_committee() -> Vec<T::AccountId>

Getter for the current committee. Returns a Vec of AccountIds.

source§

fn active_set() -> Vec<T::AccountId>

Getter for the active set. Returns a Vec of AccountIds.

source§

fn honest_active_set() -> Vec<T::AccountId>

Getter for the active set of ONLY those who haven’t been permanently slashed. Returns a Vec of AccountIds.

source§

fn read_attester_info(attester: &T::AccountId) -> Option<AttesterInfo>

Getter for the info of the attester provided.

source§

fn read_nominations( for_attester: &T::AccountId ) -> Vec<(T::AccountId, BalanceOf<T>)>

Getter for the nominations of the given attester. Returns the nominator and the balance of the nomination as a tuple (account id, balance).

source§

fn get_activated_targets() -> Vec<TargetId>

Getter for the attestation targets.

source§

fn read_attestation_latency(target: &TargetId) -> Option<LatencyStatus>

Getter for the latency status of the given target. Selects the oldest batch with PendingAttestation and return its LatencyStatus.

source§

fn estimate_finality_fee(target: &TargetId) -> BalanceOf<T>

Estimation of the finality fee for the given target.

For this first version, we don’t take into account the number of users, i.e., there’s no batching factor.

source§

fn estimate_finality_reward( target: &TargetId, blocks_delay: BlockNumberFor<T> ) -> BalanceOf<T>

Compute, for a given target, the finality reward as a Balance

source§

fn estimate_batching_factor(target: &TargetId) -> Option<BatchingFactor>

Estimate the batching factor for a given target.

source§

impl<T: Config> AttestersWriteApi<<T as Config>::AccountId, DispatchError> for Pallet<T>

source§

fn request_sfx_attestation_commit( target: TargetId, sfx_id: H256, maybe_gmp_payload: Option<H256> ) -> Result<(), DispatchError>

source§

fn request_sfx_attestation_revert( target: TargetId, sfx_id: H256 ) -> Result<(), DispatchError>

source§

fn request_ban_attesters_attestation( ban_attester: &T::AccountId ) -> Result<(), DispatchError>

source§

fn request_next_committee_attestation() -> Vec<(TargetId, u32)>

source§

impl<T: Config> Callable<T> for Pallet<T>

source§

impl<T> Clone for Pallet<T>

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> Debug for Pallet<T>

source§

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

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

impl<T: Config> GetStorageVersion for Pallet<T>

§

type CurrentStorageVersion = NoStorageVersionSet

This will be filled out by the pallet macro. Read more
source§

fn current_storage_version() -> Self::CurrentStorageVersion

Returns the current storage version as supported by the pallet.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the on-chain storage version of the pallet as stored in the storage.
source§

impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_initialize(n: BlockNumberFor<T>) -> Weight

The block is being initialized. Implement to have something happen. Read more
§

fn on_finalize(_n: BlockNumber)

The block is being finalized. Implement to have something happen.
§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

This will be run when the block is being finalized (before on_finalize). Read more
§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a module allows you to perform long-running tasks that make (by default) validators generate transactions that feed results of those long-running computations back on chain. Read more
§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> IntegrityTest for Pallet<T>

source§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn offchain_worker(n: BlockNumberFor<T>)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_finalize(n: BlockNumberFor<T>)

The block is being finalized. Implement to have something happen. Read more
source§

impl<T: Config> OnGenesis for Pallet<T>

source§

fn on_genesis()

Something that should happen at genesis.
source§

impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_idle(n: BlockNumberFor<T>, remaining_weight: Weight) -> Weight

The block is being finalized. Implement to have something happen in case there is leftover weight. Check the passed remaining_weight to make sure it is high enough to allow for your pallet’s extra computation. Read more
source§

impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>

source§

fn on_initialize(n: BlockNumberFor<T>) -> Weight

The block is being initialized. Implement to have something happen. Read more
source§

impl<T: Config> OnRuntimeUpgrade for Pallet<T>

source§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
source§

impl<T: Config> PalletInfoAccess for Pallet<T>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config> PalletsInfoAccess for Pallet<T>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T> PartialEq<Pallet<T>> for Pallet<T>

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: Config> StorageInfoTrait for Pallet<T>

source§

fn storage_info() -> Vec<StorageInfo>

source§

impl<T: Config> WhitelistedStorageKeys for Pallet<T>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a Vec<TrackedStorageKey> indicating the storage keys that should be whitelisted during benchmarking. This means that those keys will be excluded from the benchmarking performance calculation.
source§

impl<T> Eq for Pallet<T>

Auto Trait Implementations§

§

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

§

impl<T> Send for Pallet<T>where T: Send,

§

impl<T> Sync for Pallet<T>where T: Sync,

§

impl<T> Unpin for Pallet<T>where T: Unpin,

§

impl<T> UnwindSafe for Pallet<T>where T: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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> Conv for T

§

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

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

impl<T> DynClone for Twhere T: Clone,

source§

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

source§

impl<Q, K> Equivalent<K> for Qwhere 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 Qwhere 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.

source§

impl<T> Instrument for T

source§

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

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

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 Twhere 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.

§

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 Twhere 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> Pipe for Twhere T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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 ) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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 ) -> Rwhere 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 = mem::align_of::<T>()

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

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

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

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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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)) -> Selfwhere 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 Twhere 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 Twhere 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 Twhere 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<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for Swhere 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 Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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

fn with_current_subscriber(self) -> WithDispatch<Self>

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

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for Twhere T: Debug,

§

impl<T> MaybeRefUnwindSafe for Twhere T: RefUnwindSafe,

§

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