Struct pallet_gated_marketplace::pallet::Pallet
source · pub struct Pallet<T>(_);
Expand description
The pallet implementing the on-chain logic.
Implementations§
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn do_initial_setup() -> DispatchResult
pub fn do_create_marketplace( origin: OriginFor<T>, admin: T::AccountId, marketplace: Marketplace<T> ) -> DispatchResult
pub fn do_apply( applicant: T::AccountId, custodian: Option<T::AccountId>, marketplace_id: [u8; 32], application: Application<T> ) -> DispatchResult
pub fn do_invite( authority: T::AccountId, marketplace_id: [u8; 32], new_user: T::AccountId, fields: Fields<T>, custodian_fields: Option<CustodianFields<T>> ) -> DispatchResult
pub fn do_enroll( authority: T::AccountId, marketplace_id: [u8; 32], account_or_application: AccountOrApplication<T>, approved: bool, feedback: BoundedVec<u8, T::MaxFeedbackLen> ) -> DispatchResult
pub fn self_enroll( account: T::AccountId, marketplace_id: [u8; 32] ) -> DispatchResult
pub fn do_update_label_marketplace( authority: T::AccountId, marketplace_id: [u8; 32], new_label: BoundedVec<u8, T::LabelMaxLen> ) -> DispatchResult
pub fn do_remove_marketplace( authority: T::AccountId, marketplace_id: [u8; 32] ) -> DispatchResult
pub fn do_enlist_sell_offer( authority: T::AccountId, marketplace_id: [u8; 32], collection_id: T::CollectionId, item_id: T::ItemId, price: T::Balance, percentage: u32 ) -> Result<[u8; 32], DispatchError>
pub fn do_enlist_buy_offer( authority: T::AccountId, marketplace_id: [u8; 32], collection_id: T::CollectionId, item_id: T::ItemId, price: T::Balance, percentage: u32 ) -> Result<[u8; 32], DispatchError>
pub fn do_take_sell_offer( origin: OriginFor<T>, offer_id: [u8; 32] ) -> DispatchResultwhere <T as Config>::ItemId: From<u32>,
pub fn do_take_buy_offer( authority: T::AccountId, offer_id: [u8; 32] ) -> DispatchResultwhere <T as Config>::ItemId: From<u32>,
pub fn do_remove_offer( authority: T::AccountId, offer_id: [u8; 32] ) -> DispatchResult
pub fn set_up_application( fields: Fields<T>, custodian_fields: Option<CustodianFields<T>> ) -> (Option<T::AccountId>, BoundedVec<ApplicationField, T::MaxFiles>)
pub fn remove_from_market_lists( account: T::AccountId, author_type: MarketplaceRole, marketplace_id: [u8; 32] ) -> DispatchResult
pub fn do_block_user( authority: T::AccountId, marketplace_id: [u8; 32], user: T::AccountId ) -> DispatchResult
pub fn do_unblock_user( authority: T::AccountId, marketplace_id: [u8; 32], user: T::AccountId ) -> DispatchResult
sourcepub fn is_application_in_rejected_status(
account: T::AccountId,
marketplace_id: [u8; 32]
) -> DispatchResult
pub fn is_application_in_rejected_status( account: T::AccountId, marketplace_id: [u8; 32] ) -> DispatchResult
Let us check the curent status of the selected application. If the status is rejected, we can safely remove its data from the storage sources so the user can apply again. It doesn’t affect any other storage source/workflow.
pub fn do_ask_for_redeem( who: T::AccountId, marketplace: MarketplaceId, collection_id: T::CollectionId, item_id: T::ItemId ) -> DispatchResult
pub fn do_accept_redeem( who: T::AccountId, marketplace: MarketplaceId, redemption_id: RedemptionId ) -> DispatchResultwhere <T as Config>::ItemId: From<u32>,
pub fn pallet_id() -> IdOrVec
source§impl<T> Pallet<T>where
T: Config<CollectionId = u32, ItemId = u32> + Config,
impl<T> Pallet<T>where T: Config<CollectionId = u32, ItemId = u32> + Config,
pub fn initial_setup(origin: OriginFor<T>) -> DispatchResult
sourcepub fn create_marketplace(
origin: OriginFor<T>,
admin: T::AccountId,
label: BoundedVec<u8, T::LabelMaxLen>,
buy_fee: u32,
sell_fee: u32,
asset_id: T::AssetId
) -> DispatchResult
pub fn create_marketplace( origin: OriginFor<T>, admin: T::AccountId, label: BoundedVec<u8, T::LabelMaxLen>, buy_fee: u32, sell_fee: u32, asset_id: T::AssetId ) -> DispatchResult
Create a new marketplace.
Creates a new marketplace with the given label .
Parameters:
origin
: The owner of the marketplace.admin
: The admin of the marketplace.label
: The name of the marketplace.
sourcepub fn block_user(
origin: OriginFor<T>,
marketplace_id: MarketplaceId,
block_args: BlockUserArgs<T>
) -> DispatchResult
pub fn block_user( origin: OriginFor<T>, marketplace_id: MarketplaceId, block_args: BlockUserArgs<T> ) -> DispatchResult
Block or Unblock a user from apllying to a marketplace.
Blocks or Unblocks a user from applying to a marketplace.
Parameters:
origin
: The admin of the marketplace.marketplace_id
: The id of the marketplace to block/unblock the user.user
: The id of the user to block/unblock.`
Considerations:
- Once a user is blocked, the user won’t be able to join the marketplace until unblocked.
sourcepub fn apply(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
fields: Fields<T>,
custodian_fields: Option<CustodianFields<T>>
) -> DispatchResult
pub fn apply( origin: OriginFor<T>, marketplace_id: [u8; 32], fields: Fields<T>, custodian_fields: Option<CustodianFields<T>> ) -> DispatchResult
Apply to a marketplace.
Applies to the selected marketplace.
Parameters:
origin
: The applicant.marketplace_id
: The id of the marketplace where we want to apply.fields
: Confidential user documents, any files necessary for the applicationcustodian_fields
: The custodian account and their documents.
Considerations:
- You can add many documents, up to the maximum allowed (10).
- The custodian account is optional. You can apply to a marketplace without a custodian account.
- All custodian fields are optional.
sourcepub fn reapply(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
fields: Fields<T>,
custodian_fields: Option<CustodianFields<T>>
) -> DispatchResult
pub fn reapply( origin: OriginFor<T>, marketplace_id: [u8; 32], fields: Fields<T>, custodian_fields: Option<CustodianFields<T>> ) -> DispatchResult
Accept or reject a reapplyment.
Allows the applicant for a second chance to apply to the selected marketplace.
Parameters:
origin
: The reapplicant.marketplace_id
: The id of the marketplace where we want to reapply.fields
: Confidential user documents, any files necessary for the reapplicationcustodian_fields
: The custodian account and their documents.
Considerations:
- Since this is a second chance, you can replace your previous documents, up to the maximum allowed (10).
- The custodian account is optional. You can replace the previous custodian.
- Since we know the application exists, we can check the current status of the application.
sourcepub fn enroll(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
account_or_application: AccountOrApplication<T>,
approved: bool,
feedback: BoundedVec<u8, T::MaxFeedbackLen>
) -> DispatchResult
pub fn enroll( origin: OriginFor<T>, marketplace_id: [u8; 32], account_or_application: AccountOrApplication<T>, approved: bool, feedback: BoundedVec<u8, T::MaxFeedbackLen> ) -> DispatchResult
Accept or reject an application.
If the application is accepted, the user will be added to the list of applicants. If the application is rejected, the user will be moved to the list of rejected applicants.
Parameters:
origin
: The owner/admin of the marketplace.marketplace_id
: The id of the marketplace where we want to enroll users.account_or_application
: The account or application id to accept or reject.approved
: Whether to accept or reject the account/application.
Considerations:
- You can only accept or reject applications where you are the owner/admin of the marketplace.
- Ensure that your extrinsic has selected the right option account/application because some fields changes.
- If you select
Account
you need to enter the account to be accepted. - If you select
Application
you need to enter theapplication_id
to be accepted.
sourcepub fn invite(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
account: T::AccountId,
fields: Fields<T>,
custodian_fields: Option<CustodianFields<T>>
) -> DispatchResult
pub fn invite( origin: OriginFor<T>, marketplace_id: [u8; 32], account: T::AccountId, fields: Fields<T>, custodian_fields: Option<CustodianFields<T>> ) -> DispatchResult
Invite a user to a marketplace.
The admin of the marketplace can invite a user to the marketplace.
Parameters:
origin
: The admin of the marketplace.marketplace_id
: The id of the marketplace where we want to invite a user.account
: The account to be invited.
Considerations:
- You can only invite users to a marketplace where you are the admin.
Add an Authority type
This extrinsic adds an authority type for the selected account from the selected marketplace.
Parameters:
origin
: The user who performs the action.account
: The account to be removed.authority_type
: The type of authority to be added.marketplace_id
: The id of the marketplace where we want to add the account.
Considerations:
If the user has already applied to the marketplace for that particular authority type, it will throw an error.
Remove an Authority type
This extrinsic removes an authority type for the selected account from the selected marketplace.
Parameters:
origin
: The user who performs the action.account
: The account to be removed.authority_type
: The type of authority to be removed.marketplace_id
: The id of the marketplace where we want to remove the account.
Considerations:
- This extrinsic doesn’t remove the account from the marketplace, it only removes the selected authority type for that account. If the user doesn’t have the selected authority type, it will throw an error.
sourcepub fn update_label_marketplace(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
new_label: BoundedVec<u8, T::LabelMaxLen>
) -> DispatchResult
pub fn update_label_marketplace( origin: OriginFor<T>, marketplace_id: [u8; 32], new_label: BoundedVec<u8, T::LabelMaxLen> ) -> DispatchResult
Update marketplace’s label.
This extrinsic updates the label of the selected marketplace.
Parameters:
origin
: The user who performs the action.marketplace_id
: The id of the marketplace where we want to update the label.label
: The new label for the selected marketplace.
Considerations:
- You can only update the label of the marketplace where you are the owner/admin of the marketplace.
- The label must be less than or equal to `T::LabelMaxLen
- If the selected marketplace doesn’t exist, it will throw an error.
sourcepub fn remove_marketplace(
origin: OriginFor<T>,
marketplace_id: [u8; 32]
) -> DispatchResult
pub fn remove_marketplace( origin: OriginFor<T>, marketplace_id: [u8; 32] ) -> DispatchResult
Remove a particular marketplace.
This extrinsic removes the selected marketplace. It removes all the applications related with the marketplace. It removes all the authorities from the lists of the marketplace.
Parameters:
origin
: The user who performs the action.marketplace_id
: The id of the marketplace to be removed.
Considerations:
- You can only remove the marketplace where you are the owner/admin of the marketplace.
- If the selected marketplace doesn’t exist, it will throw an error.
sourcepub fn enlist_sell_offer(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
collection_id: T::CollectionId,
item_id: T::ItemId,
price: T::Balance,
percentage: u32
) -> DispatchResult
pub fn enlist_sell_offer( origin: OriginFor<T>, marketplace_id: [u8; 32], collection_id: T::CollectionId, item_id: T::ItemId, price: T::Balance, percentage: u32 ) -> DispatchResult
Enlist a sell order.
This extrinsic creates a sell order in the selected marketplace.
Parameters:
origin
: The user who performs the action.marketplace_id
: The id of the marketplace where we want to create the sell order.collection_id
: The id of the collection.item_id
: The id of the item inside the collection.price
: The price of the item.
Considerations:
- You can only create a sell order in the marketplace if you are the owner of the item.
- You can create only one sell order for each item per marketplace.
- If the selected marketplace doesn’t exist, it will throw an error.
- If the selected collection doesn’t exist, it will throw an error.
sourcepub fn take_sell_offer(
origin: OriginFor<T>,
offer_id: [u8; 32]
) -> DispatchResult
pub fn take_sell_offer( origin: OriginFor<T>, offer_id: [u8; 32] ) -> DispatchResult
Accepts a sell order.
This extrinsic is called by the user who wants to buy the item. Accepts a sell order in the selected marketplace.
Parameters:
origin
: The user who performs the action.- ’offer_id`: The id of the sell order to be accepted.
marketplace_id
: The id of the marketplace where we want to accept the sell order.
Considerations:
- You don’t need to be the owner of the item to accept the sell order.
- Once the sell order is accepted, the ownership of the item is transferred to the buyer.
- If you don’t have the enough balance to accept the sell order, it will throw an error.
sourcepub fn remove_offer(origin: OriginFor<T>, offer_id: [u8; 32]) -> DispatchResult
pub fn remove_offer(origin: OriginFor<T>, offer_id: [u8; 32]) -> DispatchResult
Delete an offer.
This extrinsic deletes an offer in the selected marketplace.
Parameters:
origin
: The user who performs the action.offer_id
: The id of the offer to be deleted.
Considerations:
- You can delete sell orders or buy orders.
- You can only delete an offer if you are the creator of the offer.
- Only open offers can be deleted.
- If you need to delete multiple offers for the same item, you need to delete them one by one.
sourcepub fn enlist_buy_offer(
origin: OriginFor<T>,
marketplace_id: [u8; 32],
collection_id: T::CollectionId,
item_id: T::ItemId,
price: T::Balance,
percentage: u32
) -> DispatchResult
pub fn enlist_buy_offer( origin: OriginFor<T>, marketplace_id: [u8; 32], collection_id: T::CollectionId, item_id: T::ItemId, price: T::Balance, percentage: u32 ) -> DispatchResult
Enlist a buy order.
This extrinsic creates a buy order in the selected marketplace.
Parameters:
origin
: The user who performs the action.marketplace_id
: The id of the marketplace where we want to create the buy order.collection_id
: The id of the collection.item_id
: The id of the item inside the collection.price
: The price of the item.
Considerations:
- Any user can create a buy order in the marketplace.
- An item can receive multiple buy orders at a time.
- You need to have the enough balance to create the buy order.
sourcepub fn take_buy_offer(
origin: OriginFor<T>,
offer_id: [u8; 32]
) -> DispatchResult
pub fn take_buy_offer( origin: OriginFor<T>, offer_id: [u8; 32] ) -> DispatchResult
Accepts a buy order.
This extrinsic is called by the owner of the item who accepts the buy offer created by a market participant. Accepts a buy order in the selected marketplace.
Parameters:
origin
: The user who performs the action.offer_id
: The id of the buy order to be accepted.marketplace_id
: The id of the marketplace where we accept the buy order.
Considerations:
- You need to be the owner of the item to accept a buy order.
- Owner of the item can accept only one buy order at a time.
- When an offer is accepted, all the other offers for this item are closed.
- The buyer needs to have the enough balance to accept the buy order.
- Once the buy order is accepted, the ownership of the item is transferred to the buyer.
sourcepub fn redeem(
origin: OriginFor<T>,
marketplace: MarketplaceId,
redeem: RedeemArgs<T>
) -> DispatchResult
pub fn redeem( origin: OriginFor<T>, marketplace: MarketplaceId, redeem: RedeemArgs<T> ) -> DispatchResult
Redeem an item. This extrinsic is called by the owner of the item who wants to redeem the item. The owner of the item can ask for redemption or accept redemption.
Parameters:
origin
: The user who performs the action.marketplace_id
: The id of the marketplace where we want to redeem the item.redeem
: The type of redemption.
sourcepub fn kill_storage(origin: OriginFor<T>) -> DispatchResult
pub fn kill_storage(origin: OriginFor<T>) -> DispatchResult
Kill all the stored data.
This function is used to kill ALL the stored data. Use with caution!
Parameters:
origin
: The user who performs the action.
Considerations:
- This function is only available to the
admin
with sudo access.
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn marketplaces<KArg>(k: KArg) -> Option<Marketplace<T>>where KArg: EncodeLike<MarketplaceId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn applications<KArg>(k: KArg) -> Option<Application<T>>where KArg: EncodeLike<ApplicationId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn applications_by_account<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> Option<ApplicationId>where KArg1: EncodeLike<T::AccountId>, KArg2: EncodeLike<MarketplaceId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn applicants_by_marketplace<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BoundedVec<T::AccountId, T::MaxApplicants>where KArg1: EncodeLike<MarketplaceId>, KArg2: EncodeLike<ApplicationStatus>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn custodians<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BoundedVec<T::AccountId, T::MaxApplicationsPerCustodian>where KArg1: EncodeLike<T::AccountId>, KArg2: EncodeLike<MarketplaceId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn offers_by_item<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BoundedVec<OfferId, T::MaxOffersPerMarket>where KArg1: EncodeLike<T::CollectionId>, KArg2: EncodeLike<T::ItemId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn offers_by_account<KArg>( k: KArg ) -> BoundedVec<OfferId, T::MaxOffersPerMarket>where KArg: EncodeLike<T::AccountId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn offers_by_marketplace<KArg>( k: KArg ) -> BoundedVec<OfferId, T::MaxOffersPerMarket>where KArg: EncodeLike<MarketplaceId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn offers_info<KArg>(k: KArg) -> Option<OfferData<T>>where KArg: EncodeLike<OfferId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn asking_for_redemption<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> Option<RedemptionData<T>>where KArg1: EncodeLike<MarketplaceId>, KArg2: EncodeLike<RedemptionId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn get_blocked_accounts<KArg>( k: KArg ) -> BoundedVec<T::AccountId, T::MaxBlockedUsersPerMarket>where KArg: EncodeLike<MarketplaceId>,
Trait Implementations§
source§impl<T> Callable<T> for Pallet<T>where
T: Config<CollectionId = u32, ItemId = u32> + Config,
impl<T> Callable<T> for Pallet<T>where T: Config<CollectionId = u32, ItemId = u32> + Config,
type RuntimeCall = Call<T>
source§impl<T: Config> GetStorageVersion for Pallet<T>
impl<T: Config> GetStorageVersion for Pallet<T>
source§fn current_storage_version() -> StorageVersion
fn current_storage_version() -> StorageVersion
source§fn on_chain_storage_version() -> StorageVersion
fn on_chain_storage_version() -> StorageVersion
source§impl<T: Config> Hooks<<T as Config>::BlockNumber> for Pallet<T>
impl<T: Config> Hooks<<T as Config>::BlockNumber> for Pallet<T>
§fn on_finalize(_n: BlockNumber)
fn on_finalize(_n: BlockNumber)
§fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight
on_finalize
).
Implement to have something happen using the remaining weight.
Will not fire if the remaining weight is 0.
Return the weight used, the hook will subtract it from current weight used
and pass the result to the next on_idle
hook if it exists.§fn on_initialize(_n: BlockNumber) -> Weight
fn on_initialize(_n: BlockNumber) -> Weight
§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
§fn offchain_worker(_n: BlockNumber)
fn offchain_worker(_n: BlockNumber)
§fn integrity_test()
fn integrity_test()
source§impl<T: Config> IntegrityTest for Pallet<T>
impl<T: Config> IntegrityTest for Pallet<T>
source§fn integrity_test()
fn integrity_test()
source§impl<T: Config> OffchainWorker<<T as Config>::BlockNumber> for Pallet<T>
impl<T: Config> OffchainWorker<<T as Config>::BlockNumber> for Pallet<T>
source§fn offchain_worker(n: <T as Config>::BlockNumber)
fn offchain_worker(n: <T as Config>::BlockNumber)
source§impl<T: Config> OnFinalize<<T as Config>::BlockNumber> for Pallet<T>
impl<T: Config> OnFinalize<<T as Config>::BlockNumber> for Pallet<T>
source§fn on_finalize(n: <T as Config>::BlockNumber)
fn on_finalize(n: <T as Config>::BlockNumber)
source§impl<T: Config> OnGenesis for Pallet<T>
impl<T: Config> OnGenesis for Pallet<T>
source§fn on_genesis()
fn on_genesis()
source§impl<T: Config> OnIdle<<T as Config>::BlockNumber> for Pallet<T>
impl<T: Config> OnIdle<<T as Config>::BlockNumber> for Pallet<T>
source§fn on_idle(n: <T as Config>::BlockNumber, remaining_weight: Weight) -> Weight
fn on_idle(n: <T as Config>::BlockNumber, remaining_weight: Weight) -> Weight
remaining_weight
to make sure it is high enough to allow for
your pallet’s extra computation. Read moresource§impl<T: Config> OnInitialize<<T as Config>::BlockNumber> for Pallet<T>
impl<T: Config> OnInitialize<<T as Config>::BlockNumber> for Pallet<T>
source§fn on_initialize(n: <T as Config>::BlockNumber) -> Weight
fn on_initialize(n: <T as Config>::BlockNumber) -> Weight
source§impl<T: Config> OnRuntimeUpgrade for Pallet<T>
impl<T: Config> OnRuntimeUpgrade for Pallet<T>
source§fn on_runtime_upgrade() -> Weight
fn on_runtime_upgrade() -> Weight
source§impl<T: Config> PalletInfoAccess for Pallet<T>
impl<T: Config> PalletInfoAccess for Pallet<T>
source§fn module_name() -> &'static str
fn module_name() -> &'static str
source§fn crate_version() -> CrateVersion
fn crate_version() -> CrateVersion
source§impl<T> PartialEq<Pallet<T>> for Pallet<T>
impl<T> PartialEq<Pallet<T>> for Pallet<T>
source§impl<T: Config> WhitelistedStorageKeys for Pallet<T>
impl<T: Config> WhitelistedStorageKeys for Pallet<T>
source§fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>
Vec<TrackedStorageKey>
indicating the storage keys that
should be whitelisted during benchmarking. This means that those keys
will be excluded from the benchmarking performance calculation.impl<T> Eq for Pallet<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for Pallet<T>where T: RefUnwindSafe,
impl<T> Send for Pallet<T>where T: Send,
impl<T> Sync for Pallet<T>where T: Sync,
impl<T> Unpin for Pallet<T>where T: Unpin,
impl<T> UnwindSafe for Pallet<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> 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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any, 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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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,
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> PalletVersionToStorageVersionHelper for Twhere
T: GetStorageVersion + PalletInfoAccess,
impl<T> PalletVersionToStorageVersionHelper for Twhere T: GetStorageVersion + PalletInfoAccess,
§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
.