Enum pallet_msa::pallet::Call
source · pub enum Call<T: Config> {
create {},
create_sponsored_account_with_delegation {
delegator_key: T::AccountId,
proof: MultiSignature,
add_provider_payload: AddProvider,
},
create_provider {
provider_name: Vec<u8>,
},
grant_delegation {
delegator_key: T::AccountId,
proof: MultiSignature,
add_provider_payload: AddProvider,
},
revoke_delegation_by_delegator {
provider_msa_id: MessageSourceId,
},
add_public_key_to_msa {
msa_owner_public_key: T::AccountId,
msa_owner_proof: MultiSignature,
new_key_owner_proof: MultiSignature,
add_key_payload: AddKeyData<T>,
},
delete_msa_public_key {
public_key_to_delete: T::AccountId,
},
revoke_delegation_by_provider {
delegator: MessageSourceId,
},
revoke_schema_permissions {
provider_msa_id: MessageSourceId,
schema_ids: Vec<SchemaId>,
},
retire_msa {},
propose_to_be_provider {
provider_name: Vec<u8>,
},
create_provider_via_governance {
provider_key: T::AccountId,
provider_name: Vec<u8>,
},
// some variants omitted
}
Expand description
Contains a variant per dispatchable extrinsic that this pallet has.
Variants§
create
Creates an MSA for the Origin (sender of the transaction). Origin is assigned an MSA ID.
Events
Errors
Error::KeyAlreadyRegistered
- MSA is already registered to the Origin.
create_sponsored_account_with_delegation
Origin
MSA creates an MSA on behalf of delegator_key
, creates a Delegation with the delegator_key
’s MSA as the Delegator and origin
as Provider
. Deposits events MsaCreated
and DelegationGranted
.
Remarks
- Origin MUST be the provider
- Signatures should be over the
AddProvider
struct
Events
Errors
Error::UnauthorizedProvider
- payload’s MSA does not match given provider MSA.Error::InvalidSignature
-proof
verification fails;delegator_key
must have signedadd_provider_payload
Error::NoKeyExists
- there is no MSA fororigin
.Error::KeyAlreadyRegistered
- there is already an MSA fordelegator_key
.Error::ProviderNotRegistered
- the a non-provider MSA is used as the providerError::ProofNotYetValid
-add_provider_payload
expiration is too far in the futureError::ProofHasExpired
-add_provider_payload
expiration is in the pastError::SignatureAlreadySubmitted
- signature has already been used
create_provider
Adds an association between MSA id and ProviderRegistryEntry. As of now, the only piece of metadata we are recording is provider name.
Events
Errors
Error::NoKeyExists
- origin does not have an MSAError::ExceedsMaxProviderNameSize
- Too long of a provider nameError::DuplicateProviderRegistryEntry
- a ProviderRegistryEntry associated with the given MSA id already exists.
grant_delegation
Creates a new Delegation for an existing MSA, with origin
as the Provider and delegator_key
is the delegator.
Since it is being sent on the Delegator’s behalf, it requires the Delegator to authorize the new Delegation.
Remarks
- Origin MUST be the provider
- Signatures should be over the
AddProvider
struct
Events
Errors
Error::AddProviderSignatureVerificationFailed
-origin
’s MSA ID does not equaladd_provider_payload.authorized_msa_id
.Error::DuplicateProvider
- there is already a Delegation fororigin
MSA anddelegator_key
MSA.Error::UnauthorizedProvider
-add_provider_payload.authorized_msa_id
does not match MSA ID ofdelegator_key
.Error::InvalidSelfProvider
- Cannot delegate to the same MSAError::InvalidSignature
-proof
verification fails;delegator_key
must have signedadd_provider_payload
Error::NoKeyExists
- there is no MSA fororigin
ordelegator_key
.Error::ProviderNotRegistered
- the a non-provider MSA is used as the providerError::UnauthorizedDelegator
- Origin attempted to add a delegate for someone else’s MSA
revoke_delegation_by_delegator
Fields
provider_msa_id: MessageSourceId
Delegator (Origin) MSA terminates a delegation relationship with the Provider
MSA. Deposits eventDelegationRevoked
.
Events
Errors
Error::NoKeyExists
- origin does not have an MSAError::DelegationRevoked
- the delegation has already been revoked.Error::DelegationNotFound
- there is not delegation relationship between Origin and Delegator or Origin and Delegator are the same.
add_public_key_to_msa
Fields
msa_owner_public_key: T::AccountId
msa_owner_proof: MultiSignature
new_key_owner_proof: MultiSignature
add_key_payload: AddKeyData<T>
Adds a new public key to an existing Message Source Account (MSA). This functionality enables the MSA owner to manage multiple keys for their account or rotate keys for enhanced security.
The origin
parameter represents the account from which the function is called and can be either the MSA owner’s account or a delegated provider’s account,
depending on the intended use.
The function requires two signatures: msa_owner_proof
and new_key_owner_proof
, which serve as proofs of ownership for the existing MSA
and the new public key account, respectively. This ensures that a new key cannot be added without permission of both the MSA owner and the owner of the new key.
The necessary information for the key addition, the new public key and the MSA ID, is contained in the add_key_payload
parameter of type AddKeyData.
It also contains an expiration block number for both proofs, ensuring they are valid and must be greater than the current block.
Events
Errors
Error::MsaOwnershipInvalidSignature
-key
is not a valid signer of the providedadd_key_payload
.Error::NewKeyOwnershipInvalidSignature
-key
is not a valid signer of the providedadd_key_payload
.Error::NoKeyExists
- the MSA id for the account inadd_key_payload
does not exist.Error::NotMsaOwner
- Origin’s MSA is not the same as ’add_key_payload` MSA. Essentially you can only add a key to your own MSA.Error::ProofHasExpired
- the current block is less than theexpired
block number set inAddKeyData
.Error::ProofNotYetValid
- theexpired
block number set inAddKeyData
is greater than the current block number plus mortality_block_limit().Error::SignatureAlreadySubmitted
- signature has already been used.
delete_msa_public_key
Fields
public_key_to_delete: T::AccountId
Remove a key associated with an MSA by expiring it at the current block.
Remarks
- Removal of key deletes the association of the key with the MSA.
- The key can be re-added to same or another MSA if needed.
Events
Errors
Error::InvalidSelfRemoval
-origin
andkey
are the same.Error::NotKeyOwner
-origin
does not own the MSA ID associated withkey
.Error::NoKeyExists
-origin
orkey
are not associated withorigin
’s MSA ID.
revoke_delegation_by_provider
Fields
delegator: MessageSourceId
Provider MSA terminates Delegation with a Delegator MSA by expiring the Delegation at the current block.
Events
Errors
Error::NoKeyExists
-provider_key
does not have an MSA key.Error::DelegationRevoked
- delegation is already revokedError::DelegationNotFound
- no Delegation found between origin MSA and delegator MSA.
revoke_schema_permissions
Revokes a list of schema permissions to a provider. Attempting to revoke a Schemas that have already been revoked are ignored.
Events
Errors
NoKeyExists
- If there is not MSA fororigin
.DelegationNotFound
- If there is not delegation relationship between Origin and Delegator or Origin and Delegator are the same.SchemaNotGranted
- If attempting to revoke a schema that has not previously been granted.
retire_msa
Retires a MSA
When a user wants to disassociate themselves from Frequency, they can retire their MSA for free provided that: (1) They own the MSA (2) The MSA is not a registered provider. (3) They retire their user handle (if they have one) (4) There is only one account key (5) The user has already deleted all delegations to providers
This does not currently remove any messages related to the MSA.
Events
Errors
Error::NoKeyExists
-delegator
does not have an MSA key.
propose_to_be_provider
Propose to be a provider. Creates a proposal for council approval to create a provider from a MSA
Errors
NoKeyExists
- If there is not MSA fororigin
.
create_provider_via_governance
Create a provider by means of governance approval
Events
Errors
Error::NoKeyExists
- account does not have an MSAError::ExceedsMaxProviderNameSize
- Too long of a provider nameError::DuplicateProviderRegistryEntry
- a ProviderRegistryEntry associated with the given MSA id already exists.
Implementations§
source§impl<T: Config> Call<T>
impl<T: Config> Call<T>
sourcepub fn new_call_variant_create() -> Self
pub fn new_call_variant_create() -> Self
Create a call with the variant create
.
sourcepub fn new_call_variant_create_sponsored_account_with_delegation(
delegator_key: T::AccountId,
proof: MultiSignature,
add_provider_payload: AddProvider
) -> Self
pub fn new_call_variant_create_sponsored_account_with_delegation( delegator_key: T::AccountId, proof: MultiSignature, add_provider_payload: AddProvider ) -> Self
Create a call with the variant create_sponsored_account_with_delegation
.
sourcepub fn new_call_variant_create_provider(provider_name: Vec<u8>) -> Self
pub fn new_call_variant_create_provider(provider_name: Vec<u8>) -> Self
Create a call with the variant create_provider
.
sourcepub fn new_call_variant_grant_delegation(
delegator_key: T::AccountId,
proof: MultiSignature,
add_provider_payload: AddProvider
) -> Self
pub fn new_call_variant_grant_delegation( delegator_key: T::AccountId, proof: MultiSignature, add_provider_payload: AddProvider ) -> Self
Create a call with the variant grant_delegation
.
sourcepub fn new_call_variant_revoke_delegation_by_delegator(
provider_msa_id: MessageSourceId
) -> Self
pub fn new_call_variant_revoke_delegation_by_delegator( provider_msa_id: MessageSourceId ) -> Self
Create a call with the variant revoke_delegation_by_delegator
.
sourcepub fn new_call_variant_add_public_key_to_msa(
msa_owner_public_key: T::AccountId,
msa_owner_proof: MultiSignature,
new_key_owner_proof: MultiSignature,
add_key_payload: AddKeyData<T>
) -> Self
pub fn new_call_variant_add_public_key_to_msa( msa_owner_public_key: T::AccountId, msa_owner_proof: MultiSignature, new_key_owner_proof: MultiSignature, add_key_payload: AddKeyData<T> ) -> Self
Create a call with the variant add_public_key_to_msa
.
sourcepub fn new_call_variant_delete_msa_public_key(
public_key_to_delete: T::AccountId
) -> Self
pub fn new_call_variant_delete_msa_public_key( public_key_to_delete: T::AccountId ) -> Self
Create a call with the variant delete_msa_public_key
.
sourcepub fn new_call_variant_revoke_delegation_by_provider(
delegator: MessageSourceId
) -> Self
pub fn new_call_variant_revoke_delegation_by_provider( delegator: MessageSourceId ) -> Self
Create a call with the variant revoke_delegation_by_provider
.
sourcepub fn new_call_variant_revoke_schema_permissions(
provider_msa_id: MessageSourceId,
schema_ids: Vec<SchemaId>
) -> Self
pub fn new_call_variant_revoke_schema_permissions( provider_msa_id: MessageSourceId, schema_ids: Vec<SchemaId> ) -> Self
Create a call with the variant revoke_schema_permissions
.
sourcepub fn new_call_variant_retire_msa() -> Self
pub fn new_call_variant_retire_msa() -> Self
Create a call with the variant retire_msa
.
sourcepub fn new_call_variant_propose_to_be_provider(provider_name: Vec<u8>) -> Self
pub fn new_call_variant_propose_to_be_provider(provider_name: Vec<u8>) -> Self
Create a call with the variant propose_to_be_provider
.
sourcepub fn new_call_variant_create_provider_via_governance(
provider_key: T::AccountId,
provider_name: Vec<u8>
) -> Self
pub fn new_call_variant_create_provider_via_governance( provider_key: T::AccountId, provider_name: Vec<u8> ) -> Self
Create a call with the variant create_provider_via_governance
.
Trait Implementations§
source§impl<T: Config> CheckIfFeeless for Call<T>
impl<T: Config> CheckIfFeeless for Call<T>
source§fn is_feeless(&self, origin: &Self::Origin) -> bool
fn is_feeless(&self, origin: &Self::Origin) -> bool
#[pallet::feeless_if]
source§impl<T: Config> Decode for Call<T>
impl<T: Config> Decode for Call<T>
source§fn decode<__CodecInputEdqy: Input>(
__codec_input_edqy: &mut __CodecInputEdqy
) -> Result<Self, Error>
fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy ) -> Result<Self, Error>
§fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
fn decode_into<I>(
input: &mut I,
dst: &mut MaybeUninit<Self>
) -> Result<DecodeFinished, Error>where
I: Input,
§fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
fn skip<I>(input: &mut I) -> Result<(), Error>where
I: Input,
§fn encoded_fixed_size() -> Option<usize>
fn encoded_fixed_size() -> Option<usize>
source§impl<T: Config> Encode for Call<T>
impl<T: Config> Encode for Call<T>
source§fn size_hint(&self) -> usize
fn size_hint(&self) -> usize
source§fn encode_to<__CodecOutputEdqy: Output + ?Sized>(
&self,
__codec_dest_edqy: &mut __CodecOutputEdqy
)
fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy )
§fn using_encoded<R, F>(&self, f: F) -> R
fn using_encoded<R, F>(&self, f: F) -> R
§fn encoded_size(&self) -> usize
fn encoded_size(&self) -> usize
source§impl<T: Config> GetCallIndex for Call<T>
impl<T: Config> GetCallIndex for Call<T>
source§fn get_call_index(&self) -> u8
fn get_call_index(&self) -> u8
source§fn get_call_indices() -> &'static [u8] ⓘ
fn get_call_indices() -> &'static [u8] ⓘ
GetCallName
].source§impl<T: Config> GetCallName for Call<T>
impl<T: Config> GetCallName for Call<T>
source§fn get_call_name(&self) -> &'static str
fn get_call_name(&self) -> &'static str
source§fn get_call_names() -> &'static [&'static str]
fn get_call_names() -> &'static [&'static str]
GetCallIndex
].source§impl<T: Config> GetDispatchInfo for Call<T>
impl<T: Config> GetDispatchInfo for Call<T>
source§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
DispatchInfo
, containing relevant information of this dispatch. Read moresource§impl<T: Config> PartialEq for Call<T>
impl<T: Config> PartialEq for Call<T>
source§impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
AddKeyData<T>: TypeInfo + 'static,
T: Config + 'static,
impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::AccountId: TypeInfo + 'static,
AddKeyData<T>: TypeInfo + 'static,
T: Config + 'static,
source§impl<T: Config> UnfilteredDispatchable for Call<T>
impl<T: Config> UnfilteredDispatchable for Call<T>
§type RuntimeOrigin = <T as Config>::RuntimeOrigin
type RuntimeOrigin = <T as Config>::RuntimeOrigin
frame_system::Config::RuntimeOrigin
).source§fn dispatch_bypass_filter(
self,
origin: Self::RuntimeOrigin
) -> DispatchResultWithPostInfo
fn dispatch_bypass_filter( self, origin: Self::RuntimeOrigin ) -> DispatchResultWithPostInfo
impl<T: Config> EncodeLike for Call<T>
impl<T: Config> Eq for Call<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Call<T>where
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<<<T as Config>::Block as Block>::Header as Header>::Number: RefUnwindSafe,
impl<T> Send for Call<T>where
T: Send,
impl<T> Sync for Call<T>where
T: Sync,
impl<T> Unpin for Call<T>
impl<T> UnwindSafe for Call<T>where
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<<<T as Config>::Block as Block>::Header as Header>::Number: 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
§impl<T> DecodeAll for Twhere
T: Decode,
impl<T> DecodeAll for Twhere
T: Decode,
§fn decode_all(input: &mut &[u8]) -> Result<T, Error>
fn decode_all(input: &mut &[u8]) -> Result<T, Error>
Self
and consume all of the given input data. Read more§impl<T> DecodeLimit for Twhere
T: Decode,
impl<T> DecodeLimit for Twhere
T: Decode,
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.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§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,
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere
T: Codec,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T, Outer> IsWrappedBy<Outer> for T
impl<T, Outer> IsWrappedBy<Outer> for T
§impl<T> KeyedVec for Twhere
T: Codec,
impl<T> KeyedVec for Twhere
T: Codec,
§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) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§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
§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.§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.§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.§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)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§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 more§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 more§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 more§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 more§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 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)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.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
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.§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.§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.§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.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
impl<T, U> TryIntoKey<U> for Twhere
U: TryFromKey<T>,
type Error = <U as TryFromKey<T>>::Error
fn try_into_key(self) -> Result<U, <U as TryFromKey<T>>::Error>
§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 S
impl<T, S> UniqueSaturatedInto<T> for S
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.