Struct pallet_babe::pallet::Pallet
source · pub struct Pallet<T>(/* private fields */);
Expand description
The BABE Pallet
Implementations§
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
Methods for the ValidateUnsigned
implementation:
It restricts calls to report_equivocation_unsigned
to local calls (i.e. extrinsics generated
on this node) or that already in a block. This guarantees that only block authors can include
unsigned equivocation reports.
pub fn validate_unsigned( source: TransactionSource, call: &Call<T>, ) -> TransactionValidity
pub fn pre_dispatch(call: &Call<T>) -> Result<(), TransactionValidityError>
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn report_equivocation(
origin: OriginFor<T>,
equivocation_proof: Box<EquivocationProof<HeaderFor<T>>>,
key_owner_proof: T::KeyOwnerProof,
) -> DispatchResultWithPostInfo
pub fn report_equivocation( origin: OriginFor<T>, equivocation_proof: Box<EquivocationProof<HeaderFor<T>>>, key_owner_proof: T::KeyOwnerProof, ) -> DispatchResultWithPostInfo
Report authority equivocation/misbehavior. This method will verify the equivocation proof and validate the given key ownership proof against the extracted offender. If both are valid, the offence will be reported.
sourcepub fn report_equivocation_unsigned(
origin: OriginFor<T>,
equivocation_proof: Box<EquivocationProof<HeaderFor<T>>>,
key_owner_proof: T::KeyOwnerProof,
) -> DispatchResultWithPostInfo
pub fn report_equivocation_unsigned( origin: OriginFor<T>, equivocation_proof: Box<EquivocationProof<HeaderFor<T>>>, key_owner_proof: T::KeyOwnerProof, ) -> DispatchResultWithPostInfo
Report authority equivocation/misbehavior. This method will verify
the equivocation proof and validate the given key ownership proof
against the extracted offender. If both are valid, the offence will
be reported.
This extrinsic must be called unsigned and it is expected that only
block authors will call it (validated in ValidateUnsigned
), as such
if the block author is defined it will be defined as the equivocation
reporter.
sourcepub fn plan_config_change(
origin: OriginFor<T>,
config: NextConfigDescriptor,
) -> DispatchResult
pub fn plan_config_change( origin: OriginFor<T>, config: NextConfigDescriptor, ) -> DispatchResult
Plan an epoch config change. The epoch config change is recorded and will be enacted on
the next call to enact_epoch_change
. The config will be activated one epoch after.
Multiple calls to this method will replace any existing planned config change that had
not been enacted yet.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn epoch_index() -> u64
pub fn epoch_index() -> u64
An auto-generated getter for EpochIndex
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
An auto-generated getter for Authorities
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn genesis_slot() -> Slot
pub fn genesis_slot() -> Slot
An auto-generated getter for GenesisSlot
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn current_slot() -> Slot
pub fn current_slot() -> Slot
An auto-generated getter for CurrentSlot
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn randomness() -> BabeRandomness
pub fn randomness() -> BabeRandomness
An auto-generated getter for Randomness
.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn initialized() -> Option<Option<PreDigest>>
pub fn initialized() -> Option<Option<PreDigest>>
“ Temporary value (cleared at block finalization) which is Some
“
“ if per-block initialization has already been called for current block.“
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
“ This field should always be populated during block processing unless“
“ secondary plain slots are enabled (which don't contain a VRF output).“
“”
“ It is set in on_finalize
, before it will contain the value from the last block.“
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn lateness() -> BlockNumberFor<T>
pub fn lateness() -> BlockNumberFor<T>
“ How late the current block is compared to its parent.“ “” “ This entry is populated as part of block execution and is cleaned up“ “ on block finalization. Querying this storage entry outside of block“ “ execution context should always yield zero.“
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn epoch_config() -> Option<BabeEpochConfiguration>
pub fn epoch_config() -> Option<BabeEpochConfiguration>
“ The configuration for the current epoch. Should never be None
as it is initialized in“
“ genesis.“
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn skipped_epochs() -> BoundedVec<(u64, SessionIndex), ConstU32<100>>
pub fn skipped_epochs() -> BoundedVec<(u64, SessionIndex), ConstU32<100>>
“ A list of the last 100 skipped epochs and the corresponding session index“ “ when the epoch was skipped.“ “” “ This is only used for validating equivocation proofs. An equivocation proof“ “ must contains a key-ownership proof for a given session, therefore we need a“ “ way to tie together sessions and epoch indices, i.e. we need to validate that“ “ a validator was the owner of a given key on a given session, and what the“ “ active epoch index was during that session.“
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
sourcepub fn slot_duration() -> T::Moment
pub fn slot_duration() -> T::Moment
Determine the BABE slot duration based on the Timestamp module configuration.
sourcepub fn should_epoch_change(now: BlockNumberFor<T>) -> bool
pub fn should_epoch_change(now: BlockNumberFor<T>) -> bool
Determine whether an epoch change should take place at this block. Assumes that initialization has already taken place.
sourcepub fn next_expected_epoch_change(
now: BlockNumberFor<T>,
) -> Option<BlockNumberFor<T>>
pub fn next_expected_epoch_change( now: BlockNumberFor<T>, ) -> Option<BlockNumberFor<T>>
Return the best guess block number, at which the next epoch change is predicted to happen.
Returns None if the prediction is in the past; This implies an error internally in the Babe and should not happen under normal circumstances.
In other word, this is only accurate if no slots are missed. Given missed slots, the slot number will grow while the block number will not. Hence, the result can be interpreted as an upper bound.
sourcepub fn enact_epoch_change(
authorities: WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>,
next_authorities: WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>,
session_index: Option<SessionIndex>,
)
pub fn enact_epoch_change( authorities: WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>, next_authorities: WeakBoundedVec<(AuthorityId, BabeAuthorityWeight), T::MaxAuthorities>, session_index: Option<SessionIndex>, )
DANGEROUS: Enact an epoch change. Should be done on every block where should_epoch_change
has returned true
, and the caller is the only caller of this function.
Typically, this is not handled directly by the user, but by higher-level validator-set
manager logic like pallet-session
.
This doesn’t do anything if authorities
is empty.
sourcepub fn current_epoch_start() -> Slot
pub fn current_epoch_start() -> Slot
Finds the start slot of the current epoch.
Only guaranteed to give correct results after initialize
of the first
block in the chain (as its result is based off of GenesisSlot
).
sourcepub fn current_epoch() -> Epoch
pub fn current_epoch() -> Epoch
Produces information about the current epoch.
sourcepub fn next_epoch() -> Epoch
pub fn next_epoch() -> Epoch
Produces information about the next epoch (which was already previously announced).
sourcepub fn submit_unsigned_equivocation_report(
equivocation_proof: EquivocationProof<HeaderFor<T>>,
key_owner_proof: T::KeyOwnerProof,
) -> Option<()>
pub fn submit_unsigned_equivocation_report( equivocation_proof: EquivocationProof<HeaderFor<T>>, key_owner_proof: T::KeyOwnerProof, ) -> Option<()>
Submits an extrinsic to report an equivocation. This method will create
an unsigned extrinsic with a call to report_equivocation_unsigned
and
will push the transaction to the pool. Only useful in an offchain
context.
Trait Implementations§
source§impl<T> Benchmarking for Pallet<T>
impl<T> Benchmarking for Pallet<T>
source§fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
fn benchmarks(extra: bool) -> Vec<BenchmarkMetadata>
source§fn run_benchmark(
extrinsic: &[u8],
c: &[(BenchmarkParameter, u32)],
whitelist: &[TrackedStorageKey],
verify: bool,
internal_repeats: u32,
) -> Result<Vec<BenchmarkResult>, BenchmarkError>
fn run_benchmark( extrinsic: &[u8], c: &[(BenchmarkParameter, u32)], whitelist: &[TrackedStorageKey], verify: bool, internal_repeats: u32, ) -> Result<Vec<BenchmarkResult>, BenchmarkError>
source§impl<T: Config> BoundToRuntimeAppPublic for Pallet<T>
impl<T: Config> BoundToRuntimeAppPublic for Pallet<T>
§type Public = Public
type Public = Public
RuntimeAppPublic
this type is bound to.source§impl<T: Config> EstimateNextSessionRotation<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> EstimateNextSessionRotation<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn average_session_length() -> BlockNumberFor<T>
fn average_session_length() -> BlockNumberFor<T>
source§fn estimate_current_session_progress(
_now: BlockNumberFor<T>,
) -> (Option<Permill>, Weight)
fn estimate_current_session_progress( _now: BlockNumberFor<T>, ) -> (Option<Permill>, Weight)
source§fn estimate_next_session_rotation(
now: BlockNumberFor<T>,
) -> (Option<BlockNumberFor<T>>, Weight)
fn estimate_next_session_rotation( now: BlockNumberFor<T>, ) -> (Option<BlockNumberFor<T>>, Weight)
source§impl<T: Config> FindAuthor<u32> for Pallet<T>
impl<T: Config> FindAuthor<u32> for Pallet<T>
source§impl<T: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
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(now: BlockNumberFor<T>) -> Weight
fn on_initialize(now: BlockNumberFor<T>) -> Weight
Initialization
source§fn on_finalize(_now: BlockNumberFor<T>)
fn on_finalize(_now: BlockNumberFor<T>)
Block finalization
source§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
on_finalize
). Read moresource§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
source§fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
fn try_state(_n: BlockNumber) -> Result<(), DispatchError>
source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
source§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
source§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> IsMember<Public> for Pallet<T>
impl<T: Config> IsMember<Public> for Pallet<T>
source§fn is_member(authority_id: &AuthorityId) -> bool
fn is_member(authority_id: &AuthorityId) -> bool
MemberId
a valid member?source§impl<T: Config> Lateness<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> Lateness<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn lateness(&self) -> BlockNumberFor<T>
fn lateness(&self) -> BlockNumberFor<T>
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§fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
fn try_on_runtime_upgrade(checks: bool) -> Result<Weight, DispatchError>
on_runtime_upgrade
, but perform the optional pre_upgrade
and post_upgrade
as
well.source§fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
fn pre_upgrade() -> Result<Vec<u8>, DispatchError>
source§fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
fn post_upgrade(_state: Vec<u8>) -> Result<(), DispatchError>
source§impl<T: Config> OnTimestampSet<<T as Config>::Moment> for Pallet<T>
impl<T: Config> OnTimestampSet<<T as Config>::Moment> for Pallet<T>
source§fn on_timestamp_set(moment: T::Moment)
fn on_timestamp_set(moment: T::Moment)
source§impl<T> OneSessionHandler<<T as Config>::AccountId> for Pallet<T>
impl<T> OneSessionHandler<<T as Config>::AccountId> for Pallet<T>
source§fn on_genesis_session<'a, I>(validators: I)
fn on_genesis_session<'a, I>(validators: I)
on_new_session
should provide the same validator set.source§fn on_new_session<'a, I>(_changed: bool, validators: I, queued_validators: I)
fn on_new_session<'a, I>(_changed: bool, validators: I, queued_validators: I)
source§fn on_disabled(i: u32)
fn on_disabled(i: u32)
source§fn on_before_session_ending()
fn on_before_session_ending()
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: Config> PalletsInfoAccess for Pallet<T>
impl<T: Config> PalletsInfoAccess for Pallet<T>
source§impl<T> PartialEq for Pallet<T>
impl<T> PartialEq for Pallet<T>
source§impl<T: Config> ShouldEndSession<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
impl<T: Config> ShouldEndSession<<<<T as Config>::Block as HeaderProvider>::HeaderT as Header>::Number> for Pallet<T>
source§fn should_end_session(now: BlockNumberFor<T>) -> bool
fn should_end_session(now: BlockNumberFor<T>) -> bool
true
if the session should be ended.source§impl<T: Config> StorageInfoTrait for Pallet<T>
impl<T: Config> StorageInfoTrait for Pallet<T>
fn storage_info() -> Vec<StorageInfo>
source§impl<T: Config> ValidateUnsigned for Pallet<T>
impl<T: Config> ValidateUnsigned for Pallet<T>
source§fn validate_unsigned(
source: TransactionSource,
call: &Self::Call,
) -> TransactionValidity
fn validate_unsigned( source: TransactionSource, call: &Self::Call, ) -> TransactionValidity
source§fn pre_dispatch(call: &Self::Call) -> Result<(), TransactionValidityError>
fn pre_dispatch(call: &Self::Call) -> Result<(), TransactionValidityError>
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> 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> 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
source§impl<T> CheckedConversion for T
impl<T> CheckedConversion for T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<T> FmtForward for T
impl<T> FmtForward for T
source§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.source§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.source§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.source§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.source§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.source§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.source§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.source§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.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>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moresource§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
source§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
source§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 moresource§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 moresource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
source§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
source§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
T
. Read moresource§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read moresource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.source§impl<T> Tap for T
impl<T> Tap for T
source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moresource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moresource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moresource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moresource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moresource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moresource§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.source§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.source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.source§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
source§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.source§impl<T, S> UniqueSaturatedInto<T> for S
impl<T, S> UniqueSaturatedInto<T> for S
source§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.