pallet_sponsorship::pallet

Enum Call

Source
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

§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

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

Fields

§pot: T::PotId
§

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

§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

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.

Fields

§pot: T::PotId
§users: Vec<T::AccountId>
§

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.

Fields

§pot: T::PotId
§calls: Vec<Box<<T as Config>::RuntimeCall>>
§

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

§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

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

§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

Update the pot’s sponsorship type. Only the sponsor can do this. Emits PotSponsorshipTypeUpdated event when successful.

Fields

§pot: T::PotId
§sponsorship_type: T::SponsorshipType

Implementations§

Source§

impl<T: Config> Call<T>

Source

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.

Source

pub fn new_call_variant_remove_pot(pot: T::PotId) -> Self

Create a call with the variant remove_pot.

Source

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.

Source

pub fn new_call_variant_remove_users( pot: T::PotId, users: Vec<T::AccountId>, ) -> Self

Create a call with the variant remove_users.

Source

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.

Source

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.

Source

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.

Source

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>

Source§

type Origin = <T as Config>::RuntimeOrigin

The Origin type of the runtime.
Source§

fn is_feeless(&self, origin: &Self::Origin) -> bool

Checks if the dispatchable satisfies the feeless condition as defined by #[pallet::feeless_if]
Source§

impl<T: Config> Clone for Call<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: Config> Debug for Call<T>

Source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<T: Config> Decode for Call<T>

Source§

fn decode<__CodecInputEdqy: Input>( __codec_input_edqy: &mut __CodecInputEdqy, ) -> Result<Self, Error>

Attempt to deserialise the value from input.
§

fn decode_into<I>( input: &mut I, dst: &mut MaybeUninit<Self>, ) -> Result<DecodeFinished, Error>
where I: Input,

Attempt to deserialize the value from input into a pre-allocated piece of memory. Read more
§

fn skip<I>(input: &mut I) -> Result<(), Error>
where I: Input,

Attempt to skip the encoded value from input. Read more
§

fn encoded_fixed_size() -> Option<usize>

Returns the fixed encoded size of the type. Read more
Source§

impl<T: Config> Encode for Call<T>

Source§

fn size_hint(&self) -> usize

If possible give a hint of expected size of the encoding. Read more
Source§

fn encode_to<__CodecOutputEdqy: Output + ?Sized>( &self, __codec_dest_edqy: &mut __CodecOutputEdqy, )

Convert self to a slice and append it to the destination.
§

fn encode(&self) -> Vec<u8>

Convert self to an owned vector.
§

fn using_encoded<R, F>(&self, f: F) -> R
where F: FnOnce(&[u8]) -> R,

Convert self to a slice and then invoke the given closure with it.
§

fn encoded_size(&self) -> usize

Calculates the encoded size. Read more
Source§

impl<T: Config> GetCallIndex for Call<T>

Source§

fn get_call_index(&self) -> u8

Return the index of this Call.
Source§

fn get_call_indices() -> &'static [u8]

Return all call indices in the same order as [GetCallName].
Source§

impl<T: Config> GetCallName for Call<T>

Source§

fn get_call_name(&self) -> &'static str

Return the function name of the Call.
Source§

fn get_call_names() -> &'static [&'static str]

Return all function names in the same order as [GetCallIndex].
Source§

impl<T: Config> GetDispatchInfo for Call<T>

Source§

fn get_dispatch_info(&self) -> DispatchInfo

Return a DispatchInfo, containing relevant information of this dispatch. Read more
Source§

impl<T: Config> PartialEq for Call<T>

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

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§

type Identity = Call<T>

The type identifying for which type info is provided. Read more
Source§

fn type_info() -> Type

Returns the static type identifier for Self.
Source§

impl<T: Config> UnfilteredDispatchable for Call<T>

Source§

type RuntimeOrigin = <T as Config>::RuntimeOrigin

The origin type of the runtime, (i.e. frame_system::Config::RuntimeOrigin).
Source§

fn dispatch_bypass_filter( self, origin: Self::RuntimeOrigin, ) -> DispatchResultWithPostInfo

Dispatch this call but do not check the filter in origin.
Source§

impl<T: Config> EncodeLike for Call<T>

Source§

impl<T: Config> Eq for Call<T>

Auto Trait Implementations§

§

impl<T> Freeze for Call<T>
where <T as Config>::PotId: Freeze, <T as Config>::SponsorshipType: Freeze, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Freeze,

§

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>
where T: Send, <T as Config>::RuntimeCall: Send,

§

impl<T> Sync for Call<T>
where T: Sync, <T as Config>::RuntimeCall: Sync,

§

impl<T> Unpin for Call<T>
where <T as Config>::PotId: Unpin, <T as Config>::SponsorshipType: Unpin, <<T as Config>::Currency as Currency<<T as Config>::AccountId>>::Balance: Unpin, T: Unpin, <T as Config>::AccountId: Unpin,

§

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> DecodeAll for T
where T: Decode,

§

fn decode_all(input: &mut &[u8]) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
§

impl<T> DecodeLimit for T
where T: Decode,

§

fn decode_all_with_depth_limit( limit: u32, input: &mut &[u8], ) -> Result<T, Error>

Decode Self and consume all of the given input data. Read more
§

fn decode_with_depth_limit<I>(limit: u32, input: &mut I) -> Result<T, Error>
where I: Input,

Decode Self with the given maximum recursion depth and advance input by the number of bytes consumed. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<Q, K> Equivalent<K> for Q
where 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 Q
where 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 Q
where 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<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> Hashable for T
where T: Codec,

§

fn blake2_128(&self) -> [u8; 16]

§

fn blake2_256(&self) -> [u8; 32]

§

fn blake2_128_concat(&self) -> Vec<u8>

§

fn twox_128(&self) -> [u8; 16]

§

fn twox_256(&self) -> [u8; 32]

§

fn twox_64_concat(&self) -> Vec<u8>

§

fn identity(&self) -> Vec<u8>

§

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 T
where 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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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, U> IntoKey<U> for T
where U: FromKey<T>,

§

fn into_key(self) -> U

§

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 T
where 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> KeyedVec for T
where T: Codec,

§

fn to_keyed_vec(&self, prepend_key: &[u8]) -> Vec<u8>

Return an encoding of Self prepended by given slice.
§

impl<T> Pipe for T
where T: ?Sized,

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where 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) -> R
where 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) -> R
where 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) -> R
where 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, ) -> R
where 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) -> R
where 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) -> R
where 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) -> R
where 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, ) -> R
where 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

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

Source§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

fn saturated_from<T>(t: T) -> Self
where Self: UniqueSaturatedFrom<T>,

Convert from a value of T into an equivalent instance of Self. Read more
§

fn saturated_into<T>(self) -> T
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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)) -> Self
where 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 T
where T: Clone,

Source§

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 T
where U: Into<T>,

Source§

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 T
where U: TryFrom<T>,

Source§

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<T, U> TryIntoKey<U> for T
where 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 S
where T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for S
where 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 T
where 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<S> Codec for S
where S: Decode + Encode,

§

impl<T> EncodeLike<&&T> for T
where T: Encode,

§

impl<T> EncodeLike<&T> for T
where T: Encode,

§

impl<T> EncodeLike<&mut T> for T
where T: Encode,

§

impl<T> EncodeLike<Arc<T>> for T
where T: Encode,

§

impl<T> EncodeLike<Box<T>> for T
where T: Encode,

§

impl<'a, T> EncodeLike<Cow<'a, T>> for T
where T: ToOwned + Encode,

§

impl<T> EncodeLike<Rc<T>> for T
where T: Encode,

§

impl<S> FullCodec for S
where S: Decode + FullEncode,

§

impl<S> FullEncode for S
where S: Encode + EncodeLike,

§

impl<T> JsonSchemaMaybe for T

§

impl<T> MaybeDebug for T
where T: Debug,

§

impl<T> MaybeRefUnwindSafe for T
where T: RefUnwindSafe,

§

impl<T> Member for T
where T: Send + Sync + Debug + Eq + PartialEq + Clone + 'static,

§

impl<T> Parameter for T
where T: Codec + EncodeLike + Clone + Eq + Debug + TypeInfo,

§

impl<T> StaticTypeInfo for T
where T: TypeInfo + 'static,