pub enum Call<T: Config> {
create_pot {
pot: T::PotId,
sponsorship_type: T::SponsorshipType,
fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
},
remove_pot {
pot: T::PotId,
},
register_users {
pot: T::PotId,
users: Vec<T::AccountId>,
common_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
common_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
},
remove_users {
pot: T::PotId,
users: Vec<T::AccountId>,
},
sponsor_for {
pot: T::PotId,
calls: Vec<Box<<T as Config>::RuntimeCall>>,
},
update_pot_limits {
pot: T::PotId,
new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
},
update_users_limits {
pot: T::PotId,
new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
users: Vec<T::AccountId>,
},
update_sponsorship_type {
pot: T::PotId,
sponsorship_type: T::SponsorshipType,
},
// some variants omitted
}
Expand description
Contains a variant per dispatchable extrinsic that this pallet has.
Variants§
create_pot
Create a new sponsorship pot and set its limits. The pot id shouldn’t be in use.
Emits PotCreated(pot)
event when successful.
Fields
sponsorship_type: T::SponsorshipType
remove_pot
Allows the sponsor to remove the pot they have created themselves. The pot must not have any users. Users must have been removed prior to this call.
Emits PotRemoved(pot)
when successful
register_users
Register users for a pot and set the same limit for the list of them. Only pot sponsor can do this.
Emits UsersRegistered(pot, Vec<T::AccountId>)
with a list of registered when
successful.
Fields
remove_users
Remove users from a pot. Only pot sponsor can do this. None of the specified users must have any reserved balance in their proxy accounts. User must be registered to be removable. Users receive the free balance in their proxy account back into their own accounts when they are removed.
Emits UsersRemoved(pot, Vec<T::AccountId>)
with a list of those removed when
successful.
sponsor_for
Sponsor me for the given call from the specified pot. The caller must be registered for the pot. The calls must be consistent with the pot’s sponsorship type.
Calls: one or more extrinsics which will be executed paid by the sponsorship. If any call fails all will be rolled back
Returns Error if the pot doesn’t exist or the user is not registered for the pot or if
their call is not matching the sponsorship type in which case the error would be
frame_system::Error::CallFiltered
. Also returns error if the call itself should fail
for any reason related to either the call or the available fund for the user.
In this case the actual error will be depending on the call itself.
Regardless of the sponsorship type, users are not allowed to dispatch calls that would
leak fund from their proxy account. If they try to do so they will get
Error::BalanceLeak
. For example they cannot transfer fund to another account even if
the sponsorship type allows Balances
calls.
Emits Sponsored {paid, repaid}
when successful. The paid
is the amount initially
transferred to the proxy account of the user by the sponsor. The repaid
is the amount
repaid to the sponsor after the call has been successfully executed.
Please note repaid
can be bigger than paid
if for any reason the user is able to
partially or fully pay back their previous debt to the sponsor too.
Also the paid
might be less than what the limit for the user allows if the user can
support themselves partially or fully based on their free balance in their proxy account
. Finally, the paid
is limited by the remaining reserve quota for the pot too.
Note: The addition of T::DbWeight::get().reads_writes(2, 2)
to the weight is to account
for the reads and writes of the pot_details
and user_details
storage items which
are needed during pre and post dispatching this call.
update_pot_limits
Update the pot details. Only the sponsor can do this. If the sponsor is lowering their support, it can work only if the corresponding fee or reserve balance has enough available margin. In other words, the sponsor cannot lower the limit for the fee below what users have already taken from the pot. Similarly, the sponsor cannot lower the reserve below what the users have already borrowed.
Fields
update_users_limits
Update limits for a number of users in a single call. Only the sponsor can do this. If the sponsor is lowering their support, it can work only if the corresponding fee or reserve balance of all those users have enough available margin.
Fields
update_sponsorship_type
Update the pot’s sponsorship type. Only the sponsor can do this.
Emits PotSponsorshipTypeUpdated
event when successful.
Implementations§
Source§impl<T: Config> Call<T>
impl<T: Config> Call<T>
Sourcepub fn new_call_variant_create_pot(
pot: T::PotId,
sponsorship_type: T::SponsorshipType,
fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
) -> Self
pub fn new_call_variant_create_pot( pot: T::PotId, sponsorship_type: T::SponsorshipType, fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, ) -> Self
Create a call with the variant create_pot
.
Sourcepub fn new_call_variant_remove_pot(pot: T::PotId) -> Self
pub fn new_call_variant_remove_pot(pot: T::PotId) -> Self
Create a call with the variant remove_pot
.
Sourcepub fn new_call_variant_register_users(
pot: T::PotId,
users: Vec<T::AccountId>,
common_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
common_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
) -> Self
pub fn new_call_variant_register_users( pot: T::PotId, users: Vec<T::AccountId>, common_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, common_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, ) -> Self
Create a call with the variant register_users
.
Sourcepub fn new_call_variant_remove_users(
pot: T::PotId,
users: Vec<T::AccountId>,
) -> Self
pub fn new_call_variant_remove_users( pot: T::PotId, users: Vec<T::AccountId>, ) -> Self
Create a call with the variant remove_users
.
Sourcepub fn new_call_variant_sponsor_for(
pot: T::PotId,
calls: Vec<Box<<T as Config>::RuntimeCall>>,
) -> Self
pub fn new_call_variant_sponsor_for( pot: T::PotId, calls: Vec<Box<<T as Config>::RuntimeCall>>, ) -> Self
Create a call with the variant sponsor_for
.
Sourcepub fn new_call_variant_update_pot_limits(
pot: T::PotId,
new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
) -> Self
pub fn new_call_variant_update_pot_limits( pot: T::PotId, new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, ) -> Self
Create a call with the variant update_pot_limits
.
Sourcepub fn new_call_variant_update_users_limits(
pot: T::PotId,
new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance,
users: Vec<T::AccountId>,
) -> Self
pub fn new_call_variant_update_users_limits( pot: T::PotId, new_fee_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, new_reserve_quota: <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance, users: Vec<T::AccountId>, ) -> Self
Create a call with the variant update_users_limits
.
Sourcepub fn new_call_variant_update_sponsorship_type(
pot: T::PotId,
sponsorship_type: T::SponsorshipType,
) -> Self
pub fn new_call_variant_update_sponsorship_type( pot: T::PotId, sponsorship_type: T::SponsorshipType, ) -> Self
Create a call with the variant update_sponsorship_type
.
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> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::PotId: TypeInfo + 'static,
T::SponsorshipType: TypeInfo + 'static,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
Vec<Box<<T as Config>::RuntimeCall>>: TypeInfo + 'static,
T: Config + 'static,
impl<T> TypeInfo for Call<T>where
PhantomData<(T,)>: TypeInfo + 'static,
T::PotId: TypeInfo + 'static,
T::SponsorshipType: TypeInfo + 'static,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: TypeInfo + 'static,
Vec<T::AccountId>: TypeInfo + 'static,
Vec<Box<<T as Config>::RuntimeCall>>: TypeInfo + 'static,
T: Config + 'static,
Source§impl<T: Config> UnfilteredDispatchable for Call<T>
impl<T: Config> UnfilteredDispatchable for Call<T>
Source§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> Freeze for Call<T>
impl<T> RefUnwindSafe for Call<T>where
<T as Config>::PotId: RefUnwindSafe,
<T as Config>::SponsorshipType: RefUnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: RefUnwindSafe,
T: RefUnwindSafe,
<T as Config>::AccountId: RefUnwindSafe,
<T as Config>::RuntimeCall: RefUnwindSafe,
impl<T> Send for Call<T>
impl<T> Sync for Call<T>
impl<T> Unpin for Call<T>
impl<T> UnwindSafe for Call<T>where
<T as Config>::PotId: UnwindSafe,
<T as Config>::SponsorshipType: UnwindSafe,
<<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: UnwindSafe,
T: UnwindSafe,
<T as Config>::AccountId: UnwindSafe,
<T as Config>::RuntimeCall: 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>,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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
.