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 set_signature_threshold( origin: OriginFor<T>, new_threshold: u16 ) -> DispatchResultWithPostInfo

Set the pending signature threshold for the session following the next session.

We cannot assume that the next DKG has not already completed keygen. After all, if we are in a new session the next DKG may have already completed. Therefore, when we update the thresholds we are updating a threshold that will become the next threshold after the next session update.

  • origin - The account origin.
  • new_threshold - The new signature threshold for the DKG.
source

pub fn set_keygen_threshold( origin: OriginFor<T>, new_threshold: u16 ) -> DispatchResultWithPostInfo

Set the pending keygen threshold for the session following the next session.

We cannot assume that the next DKG has not already completed keygen. After all, if we are in a new session the next DKG may have already completed. Therefore, when we update the thresholds we are updating a threshold that will become the next threshold after the next session update.

  • origin - The account origin.
  • new_threshold - The new keygen threshold for the DKG.
source

pub fn submit_public_key( origin: OriginFor<T>, keys_and_signatures: AggregatedPublicKeys ) -> DispatchResultWithPostInfo

Submits and stores the active public key for the genesis session into the on-chain storage. This is primarily used to separate the genesis public key submission from non-genesis rounds.

Can only be submitted by the current authorities. It is also required that a SignatureThreshold of submissions is reached in order to successfully store the public key on-chain.

  • origin - The account origin.
  • keys_and_signatures - The aggregated public keys and signatures for possible current DKG public keys.
source

pub fn submit_next_public_key( origin: OriginFor<T>, keys_and_signatures: AggregatedPublicKeys ) -> DispatchResultWithPostInfo

Submits and stores the next public key for the next session into the on-chain storage.

Can only be submitted by the next authorities. It is also required that a NextSignatureThreshold of submissions is reached in order to successfully store the public key on-chain.

  • origin - The account origin.
  • keys_and_signatures - The aggregated public keys and signatures for possible next DKG public keys.
source

pub fn submit_misbehaviour_reports( origin: OriginFor<T>, reports: AggregatedMisbehaviourReports<T::DKGId, T::MaxSignatureLength, T::MaxReporters> ) -> DispatchResultWithPostInfo

Submits misbehaviour reports on chain. Signatures of the offending authority are verified against the current or next authorities depending on the type of misbehaviour.

  • Keygen: Verifies against the next authorities, since they are doing keygen.
  • Signing: Verifies against the current authorities, since they are doing signing.

Verifies the reports against the respective thresholds and if enough reports are met begins to jail and decrease the reputation of the offending authority.

The misbehaviour reputation update is: AUTHORITY_REPUTATION = DECAY_PERCENTAGE * AUTHORITY_REPUTATION

If there are not enough unjailed keygen authorities to perform a keygen after the next session, then we deduct the pending keygen threshold (and pending signing threshold) accordingly.

  • origin - The account origin.
  • reports - The aggregated misbehaviour reports containing signatures of an offending authority
source

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

Attempts to remove an authority from all possible jails (keygen & signing). This can only be called by the controller of the authority in jail. The origin must map directly to the authority in jail.

The authority’s jail sentence for either keygen or signing must be elapsed for the authority to be removed from the jail.

  • origin - The account origin.
source

pub fn force_unjail_keygen( origin: OriginFor<T>, authority: T::DKGId ) -> DispatchResultWithPostInfo

Force removes an authority from keygen jail.

Can only be called by DKG

  • origin - The account origin.
  • authority - The authority to be removed from the keygen jail.
source

pub fn force_unjail_signing( origin: OriginFor<T>, authority: T::DKGId ) -> DispatchResultWithPostInfo

Force removes an authority from signing jail.

Can only be called by the root origin.

  • origin - The account origin.
  • authority - The authority to be removed from the signing jail.
source

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

Forcefully rotate the DKG

This forces the next authorities into the current authority spot and automatically increments the authority ID. It uses change_authorities to execute the rotation forcefully.

source

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

Triggers an Emergency Keygen Protocol.

The keygen protocol will then be executed and the result will be stored in the off chain storage, which will be picked up by the on chain worker and stored on chain.

Note that, this will clear the next public key and its signature, if any.

source§

impl<T: Config> Pallet<T>

source

pub fn deposit_event(event: Event<T>)

source§

impl<T: Config> Pallet<T>

source

pub fn used_signatures( ) -> BoundedVec<BoundedVec<u8, T::MaxSignatureLength>, T::MaxSignatureLength>

An auto-generated getter for UsedSignatures.

source§

impl<T: Config> Pallet<T>

source

pub fn refresh_nonce() -> u32

An auto-generated getter for RefreshNonce.

source§

impl<T: Config> Pallet<T>

source

pub fn next_unsigned_at() -> BlockNumberFor<T>

An auto-generated getter for NextUnsignedAt.

source§

impl<T: Config> Pallet<T>

source

pub fn refresh_in_progress() -> bool

An auto-generated getter for RefreshInProgress.

source§

impl<T: Config> Pallet<T>

source

pub fn should_execute_new_keygen() -> (bool, bool)

An auto-generated getter for ShouldExecuteNewKeygen.

source§

impl<T: Config> Pallet<T>

source

pub fn should_submit_proposer_vote() -> bool

An auto-generated getter for ShouldSubmitProposerVote.

source§

impl<T: Config> Pallet<T>

source

pub fn next_dkg_public_key( ) -> Option<(AuthoritySetId, BoundedVec<u8, T::MaxKeyLength>)>

An auto-generated getter for NextDKGPublicKey.

source§

impl<T: Config> Pallet<T>

source

pub fn next_public_key_signature( ) -> Option<BoundedVec<u8, T::MaxSignatureLength>>

An auto-generated getter for NextPublicKeySignature.

source§

impl<T: Config> Pallet<T>

source

pub fn dkg_public_key() -> (AuthoritySetId, BoundedVec<u8, T::MaxKeyLength>)

An auto-generated getter for DKGPublicKey.

source§

impl<T: Config> Pallet<T>

source

pub fn public_key_signature() -> BoundedVec<u8, T::MaxSignatureLength>

An auto-generated getter for DKGPublicKeySignature.

source§

impl<T: Config> Pallet<T>

source

pub fn previous_public_key( ) -> (AuthoritySetId, BoundedVec<u8, T::MaxKeyLength>)

An auto-generated getter for PreviousPublicKey.

source§

impl<T: Config> Pallet<T>

source

pub fn historical_rounds<KArg>( k: KArg ) -> RoundMetadata<T::MaxKeyLength, T::MaxSignatureLength>where KArg: EncodeLike<AuthoritySetId>,

An auto-generated getter for HistoricalRounds.

source§

impl<T: Config> Pallet<T>

source

pub fn signature_threshold() -> u16

An auto-generated getter for SignatureThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn keygen_threshold() -> u16

An auto-generated getter for KeygenThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn next_signature_threshold() -> u16

An auto-generated getter for NextSignatureThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn next_keygen_threshold() -> u16

An auto-generated getter for NextKeygenThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_signature_threshold() -> u16

An auto-generated getter for PendingSignatureThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_keygen_threshold() -> u16

An auto-generated getter for PendingKeygenThreshold.

source§

impl<T: Config> Pallet<T>

source

pub fn authorities() -> BoundedVec<T::DKGId, T::MaxAuthorities>

An auto-generated getter for Authorities.

source§

impl<T: Config> Pallet<T>

source

pub fn authority_set_id() -> AuthoritySetId

An auto-generated getter for AuthoritySetId.

source§

impl<T: Config> Pallet<T>

source

pub fn next_authority_set_id() -> AuthoritySetId

An auto-generated getter for NextAuthoritySetId.

source§

impl<T: Config> Pallet<T>

source

pub fn next_authorities() -> BoundedVec<T::DKGId, T::MaxAuthorities>

An auto-generated getter for NextAuthorities.

source§

impl<T: Config> Pallet<T>

source

pub fn current_authorities_accounts( ) -> BoundedVec<T::AccountId, T::MaxAuthorities>

An auto-generated getter for CurrentAuthoritiesAccounts.

source§

impl<T: Config> Pallet<T>

source

pub fn next_authorities_accounts( ) -> BoundedVec<T::AccountId, T::MaxAuthorities>

An auto-generated getter for NextAuthoritiesAccounts.

source§

impl<T: Config> Pallet<T>

source

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

An auto-generated getter for AccountToAuthority.

source§

impl<T: Config> Pallet<T>

source

pub fn misbehaviour_reports<KArg>( k: KArg ) -> Option<AggregatedMisbehaviourReports<T::DKGId, T::MaxSignatureLength, T::MaxReporters>>where KArg: EncodeLike<(MisbehaviourType, AuthoritySetId, T::DKGId)>,

An auto-generated getter for MisbehaviourReports.

source§

impl<T: Config> Pallet<T>

source

pub fn authority_reputations<KArg>(k: KArg) -> T::Reputationwhere KArg: EncodeLike<T::DKGId>,

An auto-generated getter for AuthorityReputations.

source§

impl<T: Config> Pallet<T>

source

pub fn jailed_keygen_authorities<KArg>(k: KArg) -> BlockNumberFor<T>where KArg: EncodeLike<T::DKGId>,

An auto-generated getter for JailedKeygenAuthorities.

source§

impl<T: Config> Pallet<T>

source

pub fn jailed_signing_authorities<KArg>(k: KArg) -> BlockNumberFor<T>where KArg: EncodeLike<T::DKGId>,

An auto-generated getter for JailedSigningAuthorities.

source§

impl<T: Config> Pallet<T>

source

pub fn best_authorities() -> BoundedVec<(u16, T::DKGId), T::MaxAuthorities>

An auto-generated getter for BestAuthorities.

source§

impl<T: Config> Pallet<T>

source

pub fn next_best_authorities() -> BoundedVec<(u16, T::DKGId), T::MaxAuthorities>

An auto-generated getter for NextBestAuthorities.

source§

impl<T: Config> Pallet<T>

source

pub fn last_session_rotation_block() -> BlockNumberFor<T>

An auto-generated getter for LastSessionRotationBlock.

source§

impl<T: Config> Pallet<T>

source

pub fn pending_refresh_proposal() -> Option<RefreshProposal>

An auto-generated getter for PendingRefreshProposal.

source§

impl<T: Config> Pallet<T>

source

pub fn current_refresh_proposal() -> Option<RefreshProposal>

An auto-generated getter for CurrentRefreshProposal.

source§

impl<T: Config> Pallet<T>

source

pub fn authority_set() -> AuthoritySet<T::DKGId, T::MaxAuthorities>

Return the current active DKG authority set.

source

pub fn next_authority_set() -> AuthoritySet<T::DKGId, T::MaxAuthorities>

Return the next DKG authority set.

source

pub fn update_signature_threshold( new_threshold: u16 ) -> DispatchResultWithPostInfo

source

pub fn update_keygen_threshold(new_threshold: u16) -> DispatchResultWithPostInfo

source

pub fn decompress_public_key( compressed: Vec<u8> ) -> Result<Vec<u8>, DispatchError>

source

pub fn do_refresh(pub_key: Vec<u8>)

source

pub fn create_refresh_proposal( pub_key: Vec<u8>, nonce: u32 ) -> Result<Proposal<T::MaxProposalLength>, DispatchError>

source

pub fn pre_process_for_merkleize(voters: &[T::DKGId]) -> Vec<[u8; 32]>

Returns the leaves of the voter set merkle tree.

It is expected that the size of the returned vector is a power of 2.

source

pub fn next_layer(curr_layer: Vec<[u8; 32]>) -> Vec<[u8; 32]>

Computes the next layer of the merkle tree by hashing the previous layer.

source

pub fn get_voter_set_tree_height(voter_count: usize) -> u32

source

pub fn get_voter_set_tree_root(voters: &[T::DKGId]) -> [u8; 32]

Computes the merkle root of the voter set tree

source

pub fn process_public_key_submissions( aggregated_keys: AggregatedPublicKeys, authorities: Vec<T::DKGId> ) -> Result<BTreeMap<Vec<u8>, Vec<T::DKGId>>, DispatchError>

source

pub fn process_misbehaviour_reports( reports: AggregatedMisbehaviourReports<T::DKGId, T::MaxSignatureLength, T::MaxReporters>, verifying_set: Vec<T::DKGId> ) -> Vec<T::DKGId>

source

pub fn store_consensus_log( authority_ids: BoundedVec<T::DKGId, T::MaxAuthorities>, next_authority_ids: BoundedVec<T::DKGId, T::MaxAuthorities>, active_set_id: AuthoritySetId )

source

pub fn update_next_keygen_threshold(next_threshold: u16)

source

pub fn update_pending_keygen_threshold(next_threshold: u16)

source

pub fn update_next_signature_threshold(next_threshold: u16)

source

pub fn should_refresh(_now: BlockNumberFor<T>) -> bool

source

pub fn insert_historical_refresh( dkg_pub_key: &(AuthoritySetId, BoundedVec<u8, T::MaxKeyLength>), next_pub_key: &(AuthoritySetId, BoundedVec<u8, T::MaxKeyLength>), next_pub_key_signature: BoundedVec<u8, T::MaxSignatureLength> )

Inserts a successful rotation into the history

Insert historical round metadata consisting of the current round’s public key before rotation, the next round’s public key, and the refresh signature signed by the current key refreshing the next.

source

pub fn get_best_authorities_by_reputation( count: usize, authorities: &[T::DKGId] ) -> Vec<(u16, T::DKGId)>

source

pub fn get_best_authorities( count: usize, authorities: &[T::DKGId] ) -> Vec<(u16, T::DKGId)>

Trait Implementations§

source§

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

§

type Public = <T as Config>::DKGId

The [RuntimeAppPublic] this type is bound to.
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> GetDKGPublicKey for Pallet<T>

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 offchain_worker(block_number: BlockNumberFor<T>)

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

fn on_initialize(n: 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 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> IsMember<<T as Config>::DKGId> for Pallet<T>

source§

fn is_member(authority_id: &T::DKGId) -> bool

Is the given MemberId a valid member?
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> OnSignedProposal<<T as Config>::MaxProposalLength> for Pallet<T>

source§

fn on_signed_proposal( proposal: Proposal<T::MaxProposalLength> ) -> Result<(), DispatchError>

On a signed proposal, this method is called. It returns a result () and otherwise an error of type E. Read more
source§

impl<T: Config> OneSessionHandler<<T as Config>::AccountId> for Pallet<T>

§

type Key = <T as Config>::DKGId

The key type expected.
source§

fn on_genesis_session<'a, I>(validators: I)where I: Iterator<Item = (&'a T::AccountId, T::DKGId)> + 'a,

The given validator set will be used for the genesis session. It is guaranteed that the given validator set will also be used for the second session, therefore the first call to on_new_session should provide the same validator set.
source§

fn on_new_session<'a, I>(_changed: bool, validators: I, queued_validators: I)where I: Iterator<Item = (&'a T::AccountId, T::DKGId)> + 'a,

Session set has changed; act appropriately. Note that this can be called before initialization of your module. Read more
source§

fn on_disabled(i: u32)

A validator got disabled. Act accordingly until a new session begins.
§

fn on_before_session_ending()

A notification for end of the session. 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> ValidateUnsigned for Pallet<T>

source§

fn validate_unsigned( source: TransactionSource, call: &Self::Call ) -> TransactionValidity

Validate unsigned call to this module.

By default unsigned transactions are disallowed, but implementing the validator here we make sure that some particular calls (the ones produced by offchain worker) are being whitelisted and marked as valid.

§

type Call = Call<T>

The call to validate
§

fn pre_dispatch(call: &Self::Call) -> Result<(), TransactionValidityError>

Validate the call right before dispatch. Read more
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<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<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

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

Compare self to key and return true if they are equal.
§

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

§

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 Twhere T: Debug,

§

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,