Struct pallet_ocif_staking::pallet::Pallet

source ·
pub struct Pallet<T>(PhantomData<T>);
Expand description

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

Tuple Fields§

§0: PhantomData<T>

Implementations§

source§

impl<T: Config> Pallet<T>
where Result<INV4Origin<T>, <T as Config>::RuntimeOrigin>: From<<T as Config>::RuntimeOrigin>, T::AccountId: From<[u8; 32]>,

source

pub fn register_core( origin: OriginFor<T>, name: BoundedVec<u8, T::MaxNameLength>, description: BoundedVec<u8, T::MaxDescriptionLength>, image: BoundedVec<u8, T::MaxImageUrlLength>, ) -> DispatchResultWithPostInfo

Used to register core for staking.

The origin has to be the core origin.

As part of this call, RegisterDeposit will be reserved from the core account.

  • name: Name of the core.
  • description: Description of the core.
  • image: Image URL of the core.
source

pub fn unregister_core(origin: OriginFor<T>) -> DispatchResultWithPostInfo

Unregister existing core for staking, making it ineligible for rewards from current era onwards and starts the unbonding period for the stakers.

The origin has to be the core origin.

Deposit is returned to the core account.

  • core_id: Id of the core to be unregistered.
source

pub fn change_core_metadata( origin: OriginFor<T>, name: BoundedVec<u8, T::MaxNameLength>, description: BoundedVec<u8, T::MaxDescriptionLength>, image: BoundedVec<u8, T::MaxImageUrlLength>, ) -> DispatchResultWithPostInfo

Used to change the metadata of a core.

The origin has to be the core origin.

  • name: Name of the core.
  • description: Description of the core.
  • image: Image URL of the core.
source

pub fn stake( origin: OriginFor<T>, core_id: T::CoreId, value: BalanceOf<T>, ) -> DispatchResultWithPostInfo

Lock up and stake balance of the origin account.

value must be more than the minimum_stake specified by MinimumStakingAmount unless account already has bonded value equal or more than ‘minimum_stake’.

The dispatch origin for this call must be Signed by the staker’s account.

  • core_id: Id of the core to stake towards.
  • value: Amount to stake.
source

pub fn unstake( origin: OriginFor<T>, core_id: T::CoreId, value: BalanceOf<T>, ) -> DispatchResultWithPostInfo

Start unbonding process and unstake balance from the core.

The unstaked amount will no longer be eligible for rewards but still won’t be unlocked. User needs to wait for the unbonding period to finish before being able to withdraw the funds via withdraw_unstaked call.

In case remaining staked balance is below minimum staking amount, entire stake will be unstaked.

  • core_id: Id of the core to unstake from.
source

pub fn withdraw_unstaked(origin: OriginFor<T>) -> DispatchResultWithPostInfo

Withdraw all funds that have completed the unbonding process.

If there are unbonding chunks which will be fully unbonded in future eras, they will remain and can be withdrawn later.

The dispatch origin for this call must be Signed by the staker’s account.

source

pub fn staker_claim_rewards( origin: OriginFor<T>, core_id: T::CoreId, ) -> DispatchResultWithPostInfo

Claim the staker’s rewards.

In case reward cannot be claimed or was already claimed, an error is raised.

The dispatch origin for this call must be Signed by the staker’s account.

  • core_id: Id of the core to claim rewards from.
source

pub fn core_claim_rewards( origin: OriginFor<T>, core_id: T::CoreId, era: Era, ) -> DispatchResultWithPostInfo

Claim core reward for the specified era.

In case reward cannot be claimed or was already claimed, an error is raised.

  • core_id: Id of the core to claim rewards from.
  • era: Era for which rewards are to be claimed.
source

pub fn halt_unhalt_pallet( origin: OriginFor<T>, halt: bool, ) -> DispatchResultWithPostInfo

Halt or unhalt the pallet.

The dispatch origin for this call must be Root.

  • halt: true to halt, false to unhalt.
source

pub fn move_stake( origin: OriginFor<T>, from_core: T::CoreId, amount: BalanceOf<T>, to_core: T::CoreId, ) -> DispatchResultWithPostInfo

Move stake from one core to another.

The dispatch origin for this call must be Signed by the staker’s account.

  • from_core: Id of the core to move stake from.
  • amount: Amount to move.
  • to_core: Id of the core to move stake to.
source§

impl<T: Config> Pallet<T>

source

fn internal_stake( staker_info: &mut StakerInfo<BalanceOf<T>>, staking_info: &mut CoreStakeInfo<BalanceOf<T>>, amount: BalanceOf<T>, current_era: Era, ) -> Result<(), Error<T>>

Internal function responsible for validating a stake and updating in-place both the staker’s and core staking info.

source

fn internal_unstake( staker_info: &mut StakerInfo<BalanceOf<T>>, core_stake_info: &mut CoreStakeInfo<BalanceOf<T>>, amount: BalanceOf<T>, current_era: Era, ) -> Result<BalanceOf<T>, Error<T>>

Internal function responsible for validating an unstake and updating in-place both the staker’s and core staking info.

source

pub(crate) fn account_id() -> T::AccountId

source

fn update_ledger(staker: &T::AccountId, ledger: AccountLedger<BalanceOf<T>>)

Update the ledger for a staker. This will also update the stash lock. This lock will lock the entire funds except paying for further transactions.

source

fn reward_balance_snapshot( era: Era, rewards: RewardInfo<BalanceOf<T>>, new_active_stake: BalanceOf<T>, )

The block rewards are accumulated on the pallet’s account during an era. This function takes a snapshot of the pallet’s balance accrued during current era and stores it for future distribution

This is called just at the beginning of an era.

source

pub fn rewards( inflation: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::NegativeImbalance, )

Adds stakers and cores rewards to the reward pool.

  • inflation: Total inflation for the era.
source

fn update_staker_info( staker: &T::AccountId, core_id: T::CoreId, staker_info: StakerInfo<BalanceOf<T>>, )

Updates staker info for a core.

source

fn available_staking_balance( staker: &T::AccountId, ledger: &AccountLedger<BalanceOf<T>>, ) -> BalanceOf<T>

Returns available staking balance for the potential staker.

source

pub fn tvl() -> BalanceOf<T>

Returns total value locked by staking.

Note that this can differ from total staked value since some funds might be undergoing the unbonding period.

source

pub(crate) fn core_stakers_split( core_info: &CoreStakeInfo<BalanceOf<T>>, era_info: &EraInfo<BalanceOf<T>>, ) -> (BalanceOf<T>, BalanceOf<T>)

Calculate reward split between core and stakers.

Returns (core reward, joint stakers reward)

source

fn rotate_staking_info(current_era: Era) -> (Weight, BalanceOf<T>)

Used to copy all CoreStakeInfo from the ending era over to the next era.

source

pub fn internal_halt_unhalt(halt: bool)

Sets the halt state of the pallet.

source

pub fn ensure_not_halted() -> Result<(), Error<T>>

Ensure the pallet is not halted.

source

pub(crate) fn process_core_unregistration_shard( stakers: u32, core_id: T::CoreId, start_era: Era, chunk_size: u64, ) -> DispatchResultWithPostInfo

Sharded execution of the core unregistration process.

This function is called by the [ProcessMessage] trait implemented in [primitives::ProcessUnregistrationMessages]

source§

impl<T: Config> Pallet<T>

source

pub(crate) fn deposit_event(event: Event<T>)

source§

impl<T: Config> Pallet<T>

source

pub fn ledger<KArg>(k: KArg) -> AccountLedger<BalanceOf<T>>
where KArg: EncodeLike<T::AccountId>,

An auto-generated getter for Ledger.

source§

impl<T: Config> Pallet<T>

source

pub fn current_era() -> Era

An auto-generated getter for CurrentEra.

source§

impl<T: Config> Pallet<T>

source

pub fn reward_accumulator() -> RewardInfo<BalanceOf<T>>

An auto-generated getter for RewardAccumulator.

source§

impl<T: Config> Pallet<T>

source

pub fn next_era_starting_block() -> BlockNumberFor<T>

An auto-generated getter for NextEraStartingBlock.

source§

impl<T: Config> Pallet<T>

source

pub fn core_info<KArg>(k: KArg) -> Option<CoreInfoOf<T>>
where KArg: EncodeLike<T::CoreId>,

An auto-generated getter for RegisteredCore.

source§

impl<T: Config> Pallet<T>

source

pub fn general_era_info<KArg>(k: KArg) -> Option<EraInfo<BalanceOf<T>>>
where KArg: EncodeLike<Era>,

An auto-generated getter for GeneralEraInfo.

source§

impl<T: Config> Pallet<T>

source

pub fn core_stake_info<KArg1, KArg2>( k1: KArg1, k2: KArg2, ) -> Option<CoreStakeInfo<BalanceOf<T>>>
where KArg1: EncodeLike<T::CoreId>, KArg2: EncodeLike<Era>,

An auto-generated getter for CoreEraStake.

source§

impl<T: Config> Pallet<T>

source

pub fn staker_info<KArg1, KArg2>( k1: KArg1, k2: KArg2, ) -> StakerInfo<BalanceOf<T>>
where KArg1: EncodeLike<T::CoreId>, KArg2: EncodeLike<T::AccountId>,

An auto-generated getter for GeneralStakerInfo.

source§

impl<T: Config> Pallet<T>

source

pub fn is_halted() -> bool

An auto-generated getter for Halted.

source§

impl<T: Config> Pallet<T>

source

pub fn core_unregistering_staker_info<KArg>( k: KArg, ) -> Option<CoreStakeInfo<BalanceOf<T>>>
where KArg: EncodeLike<T::CoreId>,

An auto-generated getter for UnregisteredCoreStakeInfo.

source§

impl<T: Config> Pallet<T>

source

pub fn core_unregistering_staker_list<KArg>( k: KArg, ) -> Option<BoundedVec<T::AccountId, T::MaxStakersPerCore>>
where KArg: EncodeLike<T::CoreId>,

An auto-generated getter for UnregisteredCoreStakers.

Trait Implementations§

source§

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

source§

fn before_all_runtime_migrations() -> Weight

Something that should happen before runtime migrations are executed.
source§

impl<T: Config> Callable<T> for Pallet<T>
where Result<INV4Origin<T>, <T as Config>::RuntimeOrigin>: From<<T as Config>::RuntimeOrigin>, T::AccountId: From<[u8; 32]>,

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(now: BlockNumberFor<T>) -> Weight

Block initialization hook. This is called at the very beginning of block execution. Read more
§

fn on_finalize(_n: BlockNumber)

Block finalization hook. This is called at the very end of block execution. Read more
§

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

Hook to consume a block’s idle time. This will run when the block is being finalized (before [Hooks::on_finalize]). Read more
§

fn on_runtime_upgrade() -> Weight

Hook executed when a code change (aka. a “runtime upgrade”) is detected by FRAME. Read more
§

fn offchain_worker(_n: BlockNumber)

Implementing this function on a pallet allows you to perform long-running tasks that are dispatched as separate threads, and entirely independent of the main wasm runtime. Read more
§

fn integrity_test()

Check the integrity of this pallet’s configuration. Read more
source§

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

source§

fn integrity_test()

See [Hooks::integrity_test].
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>)

See [Hooks::on_finalize].
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

See [Hooks::on_idle].
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

See [Hooks::on_initialize].
source§

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

source§

fn on_runtime_upgrade() -> Weight

See [Hooks::on_runtime_upgrade].
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 name_hash() -> [u8; 16]

Two128 hash of name.
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 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> QueuePausedQuery<T> for Pallet<T>

source§

fn is_paused(_origin: &T) -> bool

Whether this queue is paused.
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> Freeze for Pallet<T>

§

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

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

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

§

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

§

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

§

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