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 one variant per dispatchable that can be called by an extrinsic.
Variants§
create
Fields
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
Fields
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) There is only one account key (3) The MSA is not a registered provider. (4) 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> 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) -> Rwhere
F: FnOnce(&[u8]) -> R,
fn using_encoded<R, F>(&self, f: F) -> Rwhere F: FnOnce(&[u8]) -> 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>
§fn get_dispatch_info(&self) -> DispatchInfo
fn get_dispatch_info(&self) -> DispatchInfo
frame_support::dispatch
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<Call<T>> for Call<T>
impl<T: Config> PartialEq<Call<T>> 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<Call<T>> 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>::BlockNumber: 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>where T: Unpin, <T as Config>::AccountId: Unpin, <T as Config>::BlockNumber: Unpin,
impl<T> UnwindSafe for Call<T>where T: UnwindSafe, <T as Config>::AccountId: UnwindSafe, <T as Config>::BlockNumber: 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,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where &'a Self: for<'a> IntoIterator,
§impl<T> Hashable for Twhere
T: Codec,
impl<T> Hashable for Twhere T: Codec,
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IsType<T> for T
impl<T> IsType<T> for T
§impl<T> 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) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere Self: Borrow<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R ) -> Rwhere Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere Self: AsRef<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere Self: AsMut<U>, U: 'a + ?Sized, R: 'a,
self
, then passes self.as_mut()
into the pipe
function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> SaturatedConversion for T
impl<T> SaturatedConversion for T
§fn saturated_from<T>(t: T) -> Selfwhere
Self: UniqueSaturatedFrom<T>,
fn saturated_from<T>(t: T) -> Selfwhere Self: UniqueSaturatedFrom<T>,
§fn saturated_into<T>(self) -> Twhere
Self: UniqueSaturatedInto<T>,
fn saturated_into<T>(self) -> Twhere Self: UniqueSaturatedInto<T>,
T
. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere Self: Deref<Target = T>, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere Self: DerefMut<Target = T> + Deref, T: ?Sized,
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere Self: Borrow<B>, B: ?Sized,
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere Self: BorrowMut<B>, B: ?Sized,
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere Self: AsRef<R>, R: ?Sized,
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere Self: AsMut<R>, R: ?Sized,
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<S, T> UncheckedInto<T> for Swhere
T: UncheckedFrom<S>,
impl<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,
§fn unchecked_into(self) -> T
fn unchecked_into(self) -> T
unchecked_from
.§impl<T, S> UniqueSaturatedInto<T> for Swhere
T: Bounded,
S: TryInto<T>,
impl<T, S> UniqueSaturatedInto<T> for Swhere T: Bounded, S: TryInto<T>,
§fn unique_saturated_into(self) -> T
fn unique_saturated_into(self) -> T
T
.