Struct pallet_rbac::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 tx_create_and_set_roles( origin: OriginFor<T>, pallet: IdOrVec, roles: Vec<Vec<u8>> ) -> DispatchResult
pub fn tx_remove_role_from_user( origin: OriginFor<T>, user: T::AccountId, pallet: IdOrVec, scope_id: ScopeId, role_id: RoleId ) -> DispatchResult
pub fn tx_create_and_set_permissions( origin: OriginFor<T>, pallet: IdOrVec, role_id: RoleId, permissions: Vec<Vec<u8>> ) -> DispatchResult
pub fn tx_assign_role_to_user( origin: OriginFor<T>, user: T::AccountId, pallet: IdOrVec, scope_id: ScopeId, role_id: RoleId ) -> DispatchResult
pub fn revoke_permission_from_role( origin: OriginFor<T>, pallet: IdOrVec, role_id: RoleId, permission_id: PermissionId ) -> DispatchResult
pub fn remove_permission_from_pallet( origin: OriginFor<T>, pallet: IdOrVec, permission_id: PermissionId ) -> DispatchResult
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn scopes<KArg>(k: KArg) -> BoundedVec<ScopeId, T::MaxScopesPerPallet>where KArg: EncodeLike<PalletId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn pallet_roles<KArg>(k: KArg) -> BoundedVec<RoleId, T::MaxRolesPerPallet>where KArg: EncodeLike<PalletId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn permissions<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BoundedVec<u8, T::PermissionMaxLen>where KArg1: EncodeLike<PalletId>, KArg2: EncodeLike<PermissionId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn permissions_by_role<KArg1, KArg2>( k1: KArg1, k2: KArg2 ) -> BoundedVec<PermissionId, T::MaxPermissionsPerRole>where KArg1: EncodeLike<PalletId>, KArg2: EncodeLike<RoleId>,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn roles_by_user<KArg>(key: KArg) -> BoundedVec<RoleId, T::MaxRolesPerUser>where KArg: EncodeLikeTuple<<(NMapKey<Blake2_128Concat, T::AccountId>, NMapKey<Identity, PalletId>, NMapKey<Identity, ScopeId>) as KeyGenerator>::KArg> + TupleToEncodedIter,
source§impl<T: Config> Pallet<T>
impl<T: Config> Pallet<T>
pub fn users_by_scope<KArg>( key: KArg ) -> BoundedVec<T::AccountId, T::MaxUsersPerRole>where KArg: EncodeLikeTuple<<(NMapKey<Identity, PalletId>, NMapKey<Identity, ScopeId>, NMapKey<Identity, RoleId>) as KeyGenerator>::KArg> + TupleToEncodedIter,
Trait Implementations§
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> RoleBasedAccessControl<<T as Config>::AccountId> for Pallet<T>
impl<T: Config> RoleBasedAccessControl<<T as Config>::AccountId> for Pallet<T>
source§fn create_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult
fn create_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult
Scope creation
Creates a scope within a external pallet using the pallet index.
Parameters:
pallet_id
: The unique pallet identifier.scope_id
: The newly generated scope identifier.
source§fn remove_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult
fn remove_scope(pallet: IdOrVec, scope_id: ScopeId) -> DispatchResult
Scope removal
Removes a scope within a external pallet using the pallet index. Executing this function will delete all registered role users.
Parameters:
pallet_id
: The unique pallet identifier.scope_id
: The scope identifier to remove.
source§fn remove_pallet_storage(pallet: IdOrVec) -> DispatchResult
fn remove_pallet_storage(pallet: IdOrVec) -> DispatchResult
External pallet storage removal
Removes all storage associated to a external pallet.
Executing this function will delete all role lists and permissions linked to that pallet.
Parameters:
pallet_id
: The unique pallet identifier.
source§fn create_and_set_roles(
pallet: IdOrVec,
roles: Vec<Vec<u8>>
) -> Result<BoundedVec<RoleId, T::MaxRolesPerPallet>, DispatchError>
fn create_and_set_roles( pallet: IdOrVec, roles: Vec<Vec<u8>> ) -> Result<BoundedVec<RoleId, T::MaxRolesPerPallet>, DispatchError>
Role creation and coupling with pallet.
Creates the specified roles if needed and adds them to the pallet. Recommended first step to enable RBAC on a external pallet.
Parameters:
pallet_id
: The unique pallet identifier.roles
: A list of roles to create, encoded in bytes.
source§fn create_role(role: Vec<u8>) -> Result<RoleId, DispatchError>
fn create_role(role: Vec<u8>) -> Result<RoleId, DispatchError>
Role creation.
Creates a role and returns its identifier, if its already created, the function will return the preexisting one.
Parameters:
role
: A role to create, encoded in bytes.
source§fn set_role_to_pallet(pallet: IdOrVec, role_id: RoleId) -> DispatchResult
fn set_role_to_pallet(pallet: IdOrVec, role_id: RoleId) -> DispatchResult
Role coupling with pallet.
Assigns a previously created role to a pallet.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The unique role identifier.
source§fn set_multiple_pallet_roles(
pallet: IdOrVec,
roles: Vec<RoleId>
) -> DispatchResult
fn set_multiple_pallet_roles( pallet: IdOrVec, roles: Vec<RoleId> ) -> DispatchResult
Multiple role coupling with pallet.
Assigns multiple, previously created roles to a pallet.
Parameters:
pallet_id
: The unique pallet identifier.roles
: A list of unique role identifiers.
source§fn assign_role_to_user(
user: T::AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: RoleId
) -> DispatchResult
fn assign_role_to_user( user: T::AccountId, pallet: IdOrVec, scope_id: &ScopeId, role_id: RoleId ) -> DispatchResult
Role assignation to a user
Assigns a role to a user in a scope context.
Parameters:
user
: The account which the role will be granted.pallet_id
: The unique pallet identifier.scope_id
: The scope in which the role will be granted.role_id
: The role identifier to grant for the user.
source§fn remove_role_from_user(
user: T::AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: RoleId
) -> DispatchResult
fn remove_role_from_user( user: T::AccountId, pallet: IdOrVec, scope_id: &ScopeId, role_id: RoleId ) -> DispatchResult
Role removal from the user.
Removes the specified role from a user in a scope context. the user will no longer be able to enforce the removed role and its permissions.
Parameters:
user
: The account which the role will be removed.pallet_id
: The unique pallet identifier.scope_id
: The scope in which the role will be removed.role_id
: The role identifier to remove from the user.
source§fn create_and_set_permissions(
pallet: IdOrVec,
role_id: RoleId,
permissions: Vec<Vec<u8>>
) -> Result<BoundedVec<PermissionId, Self::MaxPermissionsPerRole>, DispatchError>
fn create_and_set_permissions( pallet: IdOrVec, role_id: RoleId, permissions: Vec<Vec<u8>> ) -> Result<BoundedVec<PermissionId, Self::MaxPermissionsPerRole>, DispatchError>
Permission creation and coupling with a role.
Creates the specified permissions if needed and assigns them to a role.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role identifier to which the permissions will be linked to.permissions
: A list of permissions to create and link, encoded in bytes.
source§fn create_permission(
pallet: IdOrVec,
permission: Vec<u8>
) -> Result<PermissionId, DispatchError>
fn create_permission( pallet: IdOrVec, permission: Vec<u8> ) -> Result<PermissionId, DispatchError>
Permission creation
Creates the specified permission in the specified pallet..
Parameters:
pallet_id
: The unique pallet identifier.permission
: The permission to insert, encoded in bytes.
source§fn set_permission_to_role(
pallet: IdOrVec,
role_id: RoleId,
permission_id: PermissionId
) -> DispatchResult
fn set_permission_to_role( pallet: IdOrVec, role_id: RoleId, permission_id: PermissionId ) -> DispatchResult
Permission linking to role.
Assigns a previously created permission to a role.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role identifier to which the permission will be added.permission_id
: The permission to assign to the role.
source§fn set_multiple_permissions_to_role(
pallet: IdOrVec,
role_id: RoleId,
permissions: Vec<PermissionId>
) -> DispatchResult
fn set_multiple_permissions_to_role( pallet: IdOrVec, role_id: RoleId, permissions: Vec<PermissionId> ) -> DispatchResult
Multiple permissions assignation to a role
Assigns multiple, previously created permissions to a role in a pallet context.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role identifier to which the permissions will be added.permissions
: A list of permission identifiers to assign to the role.
source§fn do_revoke_permission_from_role(
pallet: IdOrVec,
role_id: RoleId,
permission_id: PermissionId
) -> DispatchResult
fn do_revoke_permission_from_role( pallet: IdOrVec, role_id: RoleId, permission_id: PermissionId ) -> DispatchResult
Permission revocation from role
Remove a permission linked to a role (in a pallet context).
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role identifier to which the permissions will be removed from.permission_id
: The permission to deassign.
source§fn do_remove_permission_from_pallet(
pallet: IdOrVec,
permission: PermissionId
) -> DispatchResult
fn do_remove_permission_from_pallet( pallet: IdOrVec, permission: PermissionId ) -> DispatchResult
Permission removal from pallet
Use with caution. The permission will be deleted from all the roles and pallet.
Parameters:
pallet_id
: The unique pallet identifier.permission_id
: The permission to remove completely.
Authorization function
Checks if the user has a role that includes the specified permission.
Parameters:
user
: The account to validate.pallet_id
: The unique pallet identifier.scope_id
: The scope context in which the permission will be validated.permission_id
: The permission the user must have.
source§fn has_role(
user: T::AccountId,
pallet: IdOrVec,
scope_id: &ScopeId,
role_ids: Vec<RoleId>
) -> DispatchResult
fn has_role( user: T::AccountId, pallet: IdOrVec, scope_id: &ScopeId, role_ids: Vec<RoleId> ) -> DispatchResult
User role validation function
Checks if the user has at least one of the specified roles.
Parameters:
user
: The account to validate.pallet_id
: The unique pallet identifier.scope_id
: The scope context in which the permission will be validated.role_ids
: A list of roles to validate.
source§fn does_user_have_any_role_in_scope(
account: T::AccountId,
pallet: IdOrVec,
scope_id: &ScopeId
) -> bool
fn does_user_have_any_role_in_scope( account: T::AccountId, pallet: IdOrVec, scope_id: &ScopeId ) -> bool
User any-role validation function
Checks if the user has at least one role in the given scope.
Parameters:
user
: The account to validate.pallet_id
: The unique pallet identifier.scope_id
: The scope context in which the role will be validated.
source§fn scope_exists(pallet: IdOrVec, scope_id: &ScopeId) -> DispatchResult
fn scope_exists(pallet: IdOrVec, scope_id: &ScopeId) -> DispatchResult
Scope validation
Checks if the scope exists in that pallet.
Parameters:
pallet_id
: The unique pallet identifier.scope_id
: The scope to validate.
source§fn permission_exists(
pallet: IdOrVec,
permission_id: &PermissionId
) -> DispatchResult
fn permission_exists( pallet: IdOrVec, permission_id: &PermissionId ) -> DispatchResult
Permission validation.
Checks if the permission exists in a pallet context.
Parameters:
pallet_id
: The unique pallet identifier.permission_id
: The permission to validate.
source§fn is_role_linked_to_pallet(pallet: IdOrVec, role_id: &RoleId) -> DispatchResult
fn is_role_linked_to_pallet(pallet: IdOrVec, role_id: &RoleId) -> DispatchResult
Role validation
Checks if the role is linked to the pallet.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role to validate
source§fn is_permission_linked_to_role(
pallet: IdOrVec,
role_id: &RoleId,
permission_id: &PermissionId
) -> DispatchResult
fn is_permission_linked_to_role( pallet: IdOrVec, role_id: &RoleId, permission_id: &PermissionId ) -> DispatchResult
Permission linking validation
Checks if the permission is linked to the role in the pallet context.
Parameters:
pallet_id
: The unique pallet identifier.role_id
: The role which should have the permission.permission_id
: The permission which the role should have.
source§fn get_roles_that_have_permission(
pallet_id: PalletId,
permission_id: &PermissionId
) -> Vec<RoleId>
fn get_roles_that_have_permission( pallet_id: PalletId, permission_id: &PermissionId ) -> Vec<RoleId>
Get roles that have a permission
Returns all the roles within the pallet that have a permission
Parameters:
pallet_id
: The unique pallet identifier.permission_id
: The permission which the roles should have.
source§fn get_role_users_len(
pallet: IdOrVec,
scope_id: &ScopeId,
role_id: &RoleId
) -> usize
fn get_role_users_len( pallet: IdOrVec, scope_id: &ScopeId, role_id: &RoleId ) -> usize
Role list length
Returns the number of user that have the specified role in a scope context.
Parameters:
pallet_id
: The unique pallet identifier.scope_id
: The scope in which the users will be retrieved.role_id
: The role in which the number of users will be counted.
fn to_id(v: Vec<u8>) -> [u8; 32]
fn get_roles_by_user( user: T::AccountId, pallet: IdOrVec, scope_id: &ScopeId ) -> Vec<RoleId>
type MaxRolesPerPallet = <T as Config>::MaxRolesPerPallet
type MaxPermissionsPerRole = <T as Config>::MaxPermissionsPerRole
type PermissionMaxLen = <T as Config>::PermissionMaxLen
type RoleMaxLen = <T as Config>::RoleMaxLen
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
.