Struct pallet_attesters::pallet::Pallet
source · 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>
impl<T: Config> Pallet<T>
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
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
pub fn deregister_attester(origin: OriginFor<T>) -> DispatchResult
pub fn remove_attestation_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult
pub fn agree_to_new_attestation_target( origin: OriginFor<T>, target: TargetId, recoverable: Vec<u8> ) -> DispatchResult
pub fn force_activate_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult
pub fn add_attestation_target( origin: OriginFor<T>, target: TargetId ) -> DispatchResult
pub fn submit_attestation( origin: OriginFor<T>, message: H256, signature: Vec<u8>, target: TargetId ) -> DispatchResult
pub fn commit_batch( origin: OriginFor<T>, target: TargetId, target_inclusion_proof_encoded: Vec<u8> ) -> DispatchResult
pub fn read_pending_batches(origin: OriginFor<T>) -> DispatchResult
pub fn read_latest_batching_factor_overview( origin: OriginFor<T> ) -> DispatchResult
pub fn estimate_user_finality_fee( origin: OriginFor<T>, target: TargetId ) -> DispatchResult
pub fn nominate( origin: OriginFor<T>, attester: T::AccountId, amount: BalanceOf<T> ) -> DispatchResult
pub fn unnominate( origin: OriginFor<T>, attester: T::AccountId ) -> DispatchResult
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn committee_size() -> usize
sourcepub 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>)>)
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.
pub fn find_and_set_batch_as_committed( target: TargetId, message_hash: &H256 ) -> DispatchResult
pub fn reward_submitter( submitter: &T::AccountId, submitter_on_target: &H160, target: &TargetId, to_pay: BalanceOf<T> ) -> DispatchResult
pub fn try_activate_new_target(target: &TargetId) -> bool
pub fn is_last_transition_attested() -> bool
pub fn get_batches( target: TargetId, by_status: BatchStatus ) -> Vec<BatchMessage<BlockNumberFor<T>>>
pub fn get_batch_by_message( target: TargetId, message: Vec<u8> ) -> Option<BatchMessage<BlockNumberFor<T>>>
pub fn get_batch_by_message_hash( target: TargetId, message_hash: H256 ) -> Option<BatchMessage<BlockNumberFor<T>>>
pub fn get_batches_to_commit( target: TargetId ) -> Vec<BatchMessage<BlockNumberFor<T>>>
pub fn get_latest_batch_to_commit( target: TargetId ) -> Option<BatchMessage<BlockNumberFor<T>>>
pub fn get_all_batches_to_sign( target: TargetId ) -> Vec<BatchMessage<BlockNumberFor<T>>>
pub fn get_latest_batch_to_sign( target: TargetId ) -> Option<BatchMessage<BlockNumberFor<T>>>
pub fn get_latest_batch_to_sign_hash(target: TargetId) -> Option<H256>
pub fn get_latest_batch_to_sign_message(target: TargetId) -> Option<Vec<u8>>
pub fn do_nominate( nominator: &T::AccountId, attester: &T::AccountId, amount: BalanceOf<T> ) -> DispatchResult
pub fn get_current_committee_transition_for_target( target: &TargetId ) -> CommitteeTransition
pub fn get_current_committee_indices() -> CommitteeTransitionIndices
pub fn process_repatriations( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight
pub fn process_next_batch_window( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight
pub fn is_permanently_slashed(account: &T::AccountId) -> bool
pub fn process_pending_unnominations( n: BlockNumberFor<T>, aggregated_weight: Weight ) -> Weight
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn attesters<KArg>(k: KArg) -> Option<AttesterInfo>where
KArg: EncodeLike<T::AccountId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn sorted_nominated_attesters() -> Vec<(T::AccountId, BalanceOf<T>)>
pub fn sorted_nominated_attesters() -> Vec<(T::AccountId, BalanceOf<T>)>
An auto-generated getter for SortedNominatedAttesters
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn active_set() -> Vec<T::AccountId>
pub fn active_set() -> Vec<T::AccountId>
An auto-generated getter for ActiveSet
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn pending_slashes() -> Vec<T::AccountId>
pub fn pending_slashes() -> Vec<T::AccountId>
An auto-generated getter for PermanentSlashes
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn invulnerable_attester() -> Option<T::AccountId>
pub fn invulnerable_attester() -> Option<T::AccountId>
An auto-generated getter for InvulnerableAttester
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn attestation_targets() -> Vec<TargetId>
pub fn attestation_targets() -> Vec<TargetId>
An auto-generated getter for AttestationTargets
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn pending_attestation_targets() -> Vec<TargetId>
pub fn pending_attestation_targets() -> Vec<TargetId>
An auto-generated getter for PendingAttestationTargets
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn attesters_agreements<KArg1, KArg2>(
k1: KArg1,
k2: KArg2
) -> Option<Vec<u8>>where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<TargetId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn next_batches<KArg>(k: KArg) -> Option<BatchMessage<BlockNumberFor<T>>>where
KArg: EncodeLike<TargetId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn next_committee_on_target<KArg>(k: KArg) -> Option<CommitteeTransition>where
KArg: EncodeLike<TargetId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn batches_to_sign<KArg>(
k: KArg
) -> Option<Vec<BatchMessage<BlockNumberFor<T>>>>where
KArg: EncodeLike<TargetId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn pending_unnominations<KArg>(
k: KArg
) -> Option<Vec<(T::AccountId, BalanceOf<T>, BlockNumberFor<T>)>>where
KArg: EncodeLike<T::AccountId>,
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>
impl<T: Config> Pallet<T>
sourcepub fn nominations<KArg1, KArg2>(k1: KArg1, k2: KArg2) -> Option<BalanceOf<T>>where
KArg1: EncodeLike<T::AccountId>,
KArg2: EncodeLike<T::AccountId>,
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
.
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>
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:
estimate_user_finality_fee
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>
fn previous_committee() -> Vec<T::AccountId>
Getter for the current committee. Returns a Vec of AccountIds.
source§fn current_committee() -> Vec<T::AccountId>
fn current_committee() -> Vec<T::AccountId>
Getter for the current committee. Returns a Vec of AccountIds.
source§fn active_set() -> Vec<T::AccountId>
fn active_set() -> Vec<T::AccountId>
Getter for the active set. Returns a Vec of AccountIds.
source§fn honest_active_set() -> Vec<T::AccountId>
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>
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>)>
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>
fn get_activated_targets() -> Vec<TargetId>
Getter for the attestation targets.
source§fn read_attestation_latency(target: &TargetId) -> Option<LatencyStatus>
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>
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>
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>
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>
impl<T: Config> AttestersWriteApi<<T as Config>::AccountId, DispatchError> for Pallet<T>
fn request_sfx_attestation_commit( target: TargetId, sfx_id: H256, maybe_gmp_payload: Option<H256> ) -> Result<(), DispatchError>
fn request_sfx_attestation_revert( target: TargetId, sfx_id: H256 ) -> Result<(), DispatchError>
fn request_ban_attesters_attestation( ban_attester: &T::AccountId ) -> Result<(), DispatchError>
fn request_next_committee_attestation() -> Vec<(TargetId, u32)>
source§impl<T: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
§type CurrentStorageVersion = NoStorageVersionSet
type CurrentStorageVersion = NoStorageVersionSet
source§fn current_storage_version() -> Self::CurrentStorageVersion
fn current_storage_version() -> Self::CurrentStorageVersion
source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
source§impl<T: Config> Hooks<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
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
fn on_initialize(n: BlockNumberFor<T>) -> Weight
§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
on_finalize
). Read more§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
§fn integrity_test()
fn integrity_test()
source§impl<T: Config> IntegrityTest for Pallet<T>
impl<T: Config> IntegrityTest for Pallet<T>
source§fn integrity_test()
fn integrity_test()
source§impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OffchainWorker<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn offchain_worker(n: BlockNumberFor<T>)
fn offchain_worker(n: BlockNumberFor<T>)
source§impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnFinalize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn on_finalize(n: BlockNumberFor<T>)
fn on_finalize(n: BlockNumberFor<T>)
source§impl<T: Config> OnGenesis for Pallet<T>
impl<T: Config> OnGenesis for Pallet<T>
source§fn on_genesis()
fn on_genesis()
source§impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> OnIdle<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§impl<T: Config> OnInitialize<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
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
fn on_initialize(n: BlockNumberFor<T>) -> Weight
source§impl<T: Config> OnRuntimeUpgrade for Pallet<T>
impl<T: Config> OnRuntimeUpgrade for Pallet<T>
source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
source§impl<T: Config> PalletInfoAccess for Pallet<T>
impl<T: Config> PalletInfoAccess for Pallet<T>
source§fn module_name() -> &'static str
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
source§impl<T> PartialEq<Pallet<T>> for Pallet<T>
impl<T> PartialEq<Pallet<T>> for Pallet<T>
source§impl<T: Config> WhitelistedStorageKeys for Pallet<T>
impl<T: Config> WhitelistedStorageKeys for Pallet<T>
source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
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.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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
§fn checked_from<T>(t: T) -> Option<Self>where
Self: TryFrom<T>,
fn checked_from<T>(t: T) -> Option<Self>where Self: TryFrom<T>,
§fn checked_into<T>(self) -> Option<T>where
Self: TryInto<T>,
fn checked_into<T>(self) -> Option<T>where Self: TryInto<T>,
§impl<T> Conv for T
impl<T> Conv for T
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere R: 'a,
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,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere R: 'a,
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,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§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,
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,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
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,
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,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
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,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
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,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.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,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.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,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.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,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.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,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.