pub struct Pallet<T>(_);
Expand description

The pallet implementing the on-chain logic.

Implementations§

source§

impl<T: Config> Pallet<T>

source

pub fn do_remove_xpub(who: T::AccountId) -> DispatchResult

Use with caution

source

pub fn do_insert_vault(vault: Vault<T>) -> DispatchResult

source

pub fn do_remove_vault( owner: T::AccountId, vault_id: [u8; 32] ) -> DispatchResult

source

pub fn do_remove_proposal(proposal_id: [u8; 32]) -> DispatchResult

source

pub fn do_propose(proposal: Proposal<T>) -> DispatchResult

source

pub fn do_save_psbt( signer: T::AccountId, proposal_id: [u8; 32], signature_payload: BoundedVec<u8, T::PSBTMaxLen> ) -> DispatchResult

source

pub fn do_finalize_psbt( signer: T::AccountId, proposal_id: [u8; 32], broadcast: bool ) -> DispatchResult

source

pub fn do_create_proof( signer: T::AccountId, vault_id: [u8; 32], message: Description<T>, psbt: PSBT<T> ) -> DispatchResult

source

pub fn do_save_proof_psbt( signer: T::AccountId, vault_id: [u8; 32], psbt: PSBT<T> ) -> DispatchResult

source

pub fn do_finalize_proof( signer: T::AccountId, vault_id: [u8; 32], final_proof: PSBT<T> ) -> DispatchResult

source

pub fn do_remove_proof(vault_id: [u8; 32])

source

pub fn get_xpub_status(who: T::AccountId, xpub_hash: [u8; 32]) -> XpubStatus

source

pub fn vault_comprobations( vault_id: [u8; 32], signer: &T::AccountId ) -> DispatchResult

source

pub fn do_insert_descriptors( vault_id: [u8; 32], descriptors: Descriptors<T::OutputDescriptorMaxLen>, status: BDKStatus<T::VaultDescriptionMaxLen> ) -> DispatchResult

source

pub fn do_insert_psbt( proposal_id: [u8; 32], psbt: BoundedVec<u8, T::PSBTMaxLen>, status: BDKStatus<T::VaultDescriptionMaxLen> ) -> DispatchResult

source

pub fn do_insert_tx_id( proposal_id: [u8; 32], tx_id: Option<BoundedVec<u8, T::VaultDescriptionMaxLen>>, status: BDKStatus<T::VaultDescriptionMaxLen> ) -> DispatchResult

source

pub fn get_pending_vaults() -> Vec<[u8; 32]>

source

pub fn get_pending_proposals() -> Vec<[u8; 32]>

source

pub fn get_accounts_xpubs( accounts: Vec<T::AccountId> ) -> Result<Vec<Vec<u8>>, DispatchError>

source

pub fn get_proposals_to_finalize() -> Vec<[u8; 32]>

source

pub fn extract_json_str_by_name( tuple: Vec<(Vec<char>, JsonValue)>, s: &str ) -> Option<Vec<u8>>

source

pub fn bdk_gen_vault( vault_id: [u8; 32] ) -> Result<(Vec<u8>, Vec<u8>), OffchainStatus>

source

pub fn gen_vaults_payload_by_bulk( pending_vaults: Vec<[u8; 32]> ) -> Vec<SingleVaultPayload>

source

pub fn gen_proposal_json_body( proposal_id: [u8; 32] ) -> Result<Vec<u8>, OffchainStatus>

source

pub fn bdk_gen_proposal( proposal_id: [u8; 32], api_endpoint: Vec<u8>, json_builder: &dyn Fn([u8; 32]) -> Result<Vec<u8>, OffchainStatus> ) -> Result<Vec<u8>, OffchainStatus>

source

pub fn gen_proposals_payload_by_bulk( pending_proposals: Vec<[u8; 32]>, api_endpoint: Vec<u8>, json_builder: &dyn Fn([u8; 32]) -> Result<Vec<u8>, OffchainStatus> ) -> Vec<SingleProposalPayload>

source

pub fn gen_finalize_json_body( proposal_id: [u8; 32] ) -> Result<Vec<u8>, OffchainStatus>

source

pub fn send_ocw_insert_descriptors( generated_vaults: Vec<SingleVaultPayload>, signer: &Signer<T, T::AuthorityId> )

source

pub fn send_ocw_insert_psbts( generated_proposals: Vec<SingleProposalPayload>, signer: &Signer<T, T::AuthorityId> )

source

pub fn send_ocw_finalize_psbts( generated_proposals: Vec<SingleProposalPayload>, signer: &Signer<T, T::AuthorityId> )

source

pub fn chars_to_bytes(v: Vec<char>) -> Vec<u8>

source§

impl<T: Config> Pallet<T>

source

pub fn set_xpub( origin: OriginFor<T>, xpub: BoundedVec<u8, T::XPubLen> ) -> DispatchResult

XPub insertion

This extrinsic inserts a user-defined xpub as well as in the pallet storage.

Parameters:
  • xpub: Extended public key, it can be sent with or without fingerprint/derivation path
Considerations
  • The origin must be Signed and the sender must have sufficient funds free for the transaction fee.
  • This extrinsic cannot handle a xpub update (yet). if it needs to be updated, remove it first and insert a new one.
source

pub fn remove_xpub(origin: OriginFor<T>) -> DispatchResult

Xpub removal

Removes the linked xpub from the account which signs the transaction. The xpub will be removed from both the pallet storage and identity registration.

This tx does not takes any parameters.

source

pub fn create_vault( origin: OriginFor<T>, threshold: u32, description: BoundedVec<u8, T::VaultDescriptionMaxLen>, include_owner_as_cosigner: bool, cosigners: BoundedVec<T::AccountId, T::MaxCosignersPerVault> ) -> DispatchResult

Vault insertion

Inserts the vault on chain. Meant to be used by an offchain worker.

Parameters:
  • threshold: The number of signatures needed for a proposal to be approved/finalized
  • description: A small definition. What will the vault be used for?
  • include_owner_as_cosigner: Add automatically the owner as cosigner
  • cosigners: The other accounts that will participate in vault proposals.
Considerations
  • Do not include the vault owner on the cosigners list.
source

pub fn remove_vault(origin: OriginFor<T>, vault_id: [u8; 32]) -> DispatchResult

Vault removal

Tries to remove vault and all its proposals, only the owner can call this extrinsic.

Parameters:
  • vault_id: the vault to be removed with all its proposals
Considerations:
  • Only the vault owner can perform this extrinsic
source

pub fn propose( origin: OriginFor<T>, vault_id: [u8; 32], recipient_address: BoundedVec<u8, T::XPubLen>, amount_in_sats: u64, description: BoundedVec<u8, T::VaultDescriptionMaxLen> ) -> DispatchResult

Vault transaction proposal

Inserts a proposal on the specified vault.

Parameters:
  • vault_id: the vault identifier in which the proposal will be inserted
  • recipient_address: Mainnet address to which the funds will be send
  • amount_in_sats: Amount to send in satoshis.
  • description: The reason for the proposal, why do you are proposing this?.
Considerations
  • Please ensure the recipient address is a valid mainnet address.
source

pub fn remove_proposal( origin: OriginFor<T>, proposal_id: [u8; 32] ) -> DispatchResult

Proposal removal

Tries to remove a specified proposal. Only the user who created the proposal can remove it.

Parameters:
  • proposal_id: the proposal identifier
source

pub fn set_bdk_url( origin: OriginFor<T>, new_url: BoundedVec<u8, ConstU32<32>> ) -> DispatchResult

BDK URL insertion

Changes the BDK-services endpoint, useful for pointing to the btc mainnet or testnet

Parameters:
  • new_url: The new endpoint to which all the bdk related requests will be sent.
Considerations
  • Ensure the new url is valid.
  • The url has a maximum length of 32 bytes
source

pub fn save_psbt( origin: OriginFor<T>, proposal_id: [u8; 32], signature_payload: BoundedVec<u8, T::PSBTMaxLen> ) -> DispatchResult

PSBT signature insertion

Stores the signature for a PSBT proposal

Parameters:
  • proposal_id: the proposal identifier
  • signature_payload: a blob of psbt bytes, resulting from a external wallet
Considerations
  • If successful, this process cannot be undone
  • A user can only sign a proposal once
source

pub fn finalize_psbt( origin: OriginFor<T>, proposal_id: [u8; 32], broadcast: bool ) -> DispatchResult

Finalize PSBT

Queries a proposal to be finalized generating a tx_id in the process, it can also be broadcasted if specified.

Parameters:
  • proposal_id: the proposal identifier
  • broadcast: A boolean flag
Considerations
  • If successful, this process cannot be undone
  • The proposal must have a valid PSBT
  • Any vault member can perform this extrinsic
source

pub fn broadcast_psbt( origin: OriginFor<T>, proposal_id: [u8; 32] ) -> DispatchResult

Broadcast PSBT

Queries a proposal to be broadcasted in case it wasn’t on the finalization step.

Parameters:
  • proposal_id: the vault identifier in which the proposal will be inserted
Considerations
  • If successful, this process cannot be undone
  • The proposal must be finalized already
  • Any vault member can perform this extrinsic
source

pub fn create_proof( origin: OriginFor<T>, vault_id: [u8; 32], message: Description<T>, psbt: PSBT<T> ) -> DispatchResult

Create Proof of Reserve

Stores a PoR for a defined vault.

Parameters:
  • vault_id: the vault identifier in which the proof will be inserted
  • message: the message to be taken into account to generate the PoR PSBT
  • psbt: the psbt generated from bdk
Considerations:
  • Any vault member can perform this extrinsic
  • A vault can only have a PoR at a time.
source

pub fn save_proof_psbt( origin: OriginFor<T>, vault_id: [u8; 32], psbt: PSBT<T> ) -> DispatchResult

Save Proof of reserve PSBT

Updates the PoR with a new PSBT

Parameters
  • vault_id: the vault identifier in which the proof is
  • psbt: the new psbt to insert, the signer will be linked to it.
Considerations:
  • Any vault member can perform this extrinsic
  • A vault signer can only sabe its PSBT once.
source

pub fn finalize_proof( origin: OriginFor<T>, vault_id: [u8; 32], psbt: PSBT<T> ) -> DispatchResult

Finalize proof of reserve

Updates the PoR with the final PSBT

Parameters
  • vault_id: the vault identifier in which the proof is
  • psbt: the new psbt to insert, the signer will be linked to it.
Considerations:
  • Any vault member can perform this extrinsic
  • A vault signer can only sabe its PSBT once.
source

pub fn kill_storage(origin: OriginFor<T>) -> DispatchResult

Kill almost all storage

Use with caution!

Can only be called by root and removes All vaults and proposals

source

pub fn ocw_insert_descriptors( origin: OriginFor<T>, payload: VaultsPayload<T::Public>, _signature: T::Signature ) -> DispatchResult

Extrinsic to insert a valid vault descriptor

Meant to be unsigned with signed payload and used by an offchain worker

source

pub fn ocw_insert_psbts( origin: OriginFor<T>, payload: ProposalsPayload<T::Public>, _signature: T::Signature ) -> DispatchResult

Extrinsic to insert a valid proposal PSBT

Meant to be unsigned with signed payload and used by an offchain worker

source

pub fn ocw_finalize_psbts( origin: OriginFor<T>, payload: ProposalsPayload<T::Public>, _signature: T::Signature ) -> DispatchResult

Extrinsic to insert a valid proposal TX_ID

Meant to be unsigned with signed payload and used by an offchain worker

source§

impl<T: Config> Pallet<T>

source

pub fn xpubs<KArg>(k: KArg) -> Option<BoundedVec<u8, T::XPubLen>>where KArg: EncodeLike<[u8; 32]>,

Stores hash-xpub pairs

source§

impl<T: Config> Pallet<T>

source

pub fn xpubs_by_owner<KArg>(k: KArg) -> Option<[u8; 32]>where KArg: EncodeLike<T::AccountId>,

Keeps track of what accounts own what xpub.

source§

impl<T: Config> Pallet<T>

source

pub fn proposals<KArg>(k: KArg) -> Option<Proposal<T>>where KArg: EncodeLike<[u8; 32]>,

source§

impl<T: Config> Pallet<T>

source

pub fn proposals_by_vault<KArg>( k: KArg ) -> BoundedVec<[u8; 32], T::MaxProposalsPerVault>where KArg: EncodeLike<[u8; 32]>,

source§

impl<T: Config> Pallet<T>

source

pub fn vaults<KArg>(k: KArg) -> Option<Vault<T>>where KArg: EncodeLike<[u8; 32]>,

Stores vaults

source§

impl<T: Config> Pallet<T>

source

pub fn vaults_by_signer<KArg>( k: KArg ) -> BoundedVec<[u8; 32], T::MaxVaultsPerUser>where KArg: EncodeLike<T::AccountId>,

Keeps track of what accounts own what xpub.

source§

impl<T: Config> Pallet<T>

source

pub fn proof_of_reserve<KArg>(k: KArg) -> Option<ProofOfReserve<T>>where KArg: EncodeLike<[u8; 32]>,

Stores vaults proof-of-reserve

Trait Implementations§

source§

impl<T: Config> BlockNumberProvider for Pallet<T>

§

type BlockNumber = <T as Config>::BlockNumber

Type of BlockNumber to provide.
source§

fn current_block_number() -> Self::BlockNumber

Returns the current block number. Read more
source§

impl<T: Config> Callable<T> for Pallet<T>

source§

impl<T> Clone for Pallet<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> Debug for Pallet<T>

source§

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

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

impl<T: Config> GetStorageVersion for Pallet<T>

source§

fn current_storage_version() -> StorageVersion

Returns the current storage version as supported by the pallet.
source§

fn on_chain_storage_version() -> StorageVersion

Returns the on-chain storage version of the pallet as stored in the storage.
source§

impl<T: Config> Hooks<<T as Config>::BlockNumber> for Pallet<T>

source§

fn offchain_worker(_block_number: T::BlockNumber)

Offchain Worker entry point.

By implementing fn offchain_worker you declare a new offchain worker. This function will be called when the node is fully synced and a new best block is successfully imported. Note that it’s not guaranteed for offchain workers to run on EVERY block, there might be cases where some blocks are skipped, or for some the worker runs twice (re-orgs), so the code should be able to handle that.

§

fn on_finalize(_n: BlockNumber)

The block is being finalized. Implement to have something happen.
§

fn on_idle(_n: BlockNumber, _remaining_weight: Weight) -> Weight

This will be run when the block is being finalized (before 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

The block is being initialized. Implement to have something happen. Read more
§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> IntegrityTest for Pallet<T>

source§

fn integrity_test()

Run integrity test. Read more
source§

impl<T: Config> OffchainWorker<<T as Config>::BlockNumber> for Pallet<T>

source§

fn offchain_worker(n: <T as Config>::BlockNumber)

This function is being called after every block import (when fully synced). Read more
source§

impl<T: Config> OnFinalize<<T as Config>::BlockNumber> for Pallet<T>

source§

fn on_finalize(n: <T as Config>::BlockNumber)

The block is being finalized. Implement to have something happen. Read more
source§

impl<T: Config> OnGenesis for Pallet<T>

source§

fn on_genesis()

Something that should happen at genesis.
source§

impl<T: Config> OnIdle<<T as Config>::BlockNumber> for Pallet<T>

source§

fn on_idle(n: <T as Config>::BlockNumber, remaining_weight: Weight) -> Weight

The block is being finalized. Implement to have something happen in case there is leftover weight. Check the passed remaining_weight to make sure it is high enough to allow for your pallet’s extra computation. Read more
source§

impl<T: Config> OnInitialize<<T as Config>::BlockNumber> for Pallet<T>

source§

fn on_initialize(n: <T as Config>::BlockNumber) -> Weight

The block is being initialized. Implement to have something happen. Read more
source§

impl<T: Config> OnRuntimeUpgrade for Pallet<T>

source§

fn on_runtime_upgrade() -> Weight

Perform a module upgrade. Read more
source§

impl<T: Config> PalletInfoAccess for Pallet<T>

source§

fn index() -> usize

Index of the pallet as configured in the runtime.
source§

fn name() -> &'static str

Name of the pallet as configured in the runtime.
source§

fn module_name() -> &'static str

Name of the Rust module containing the pallet.
source§

fn crate_version() -> CrateVersion

Version of the crate containing the pallet.
source§

impl<T: Config> PalletsInfoAccess for Pallet<T>

source§

fn count() -> usize

The number of pallets’ information that this type represents. Read more
source§

fn infos() -> Vec<PalletInfoData>

All of the pallets’ information that this type represents.
source§

impl<T> PartialEq<Pallet<T>> for Pallet<T>

source§

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

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

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

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<T: Config> StorageInfoTrait for Pallet<T>

source§

fn storage_info() -> Vec<StorageInfo>

source§

impl<T: Config> ValidateUnsigned for Pallet<T>

§

type Call = Call<T>

The call to validate
source§

fn validate_unsigned( _source: TransactionSource, call: &Self::Call ) -> TransactionValidity

Return the validity of the call Read more
§

fn pre_dispatch(call: &Self::Call) -> Result<(), TransactionValidityError>

Validate the call right before dispatch. Read more
source§

impl<T: Config> WhitelistedStorageKeys for Pallet<T>

source§

fn whitelisted_storage_keys() -> Vec<TrackedStorageKey>

Returns a 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.
source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

impl<T> Conv for T

§

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

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

impl<T> Downcast for Twhere T: Any,

§

fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
source§

impl<T> DynClone for Twhere T: Clone,

source§

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

source§

impl<Q, K> Equivalent<K> for Qwhere 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 Qwhere 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.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

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 Twhere 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.

§

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 Twhere 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> PalletVersionToStorageVersionHelper for Twhere T: GetStorageVersion + PalletInfoAccess,

§

fn migrate(db_weight: &RuntimeDbWeight) -> Weight

§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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 ) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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) -> Rwhere 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 ) -> Rwhere 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 = mem::align_of::<T>()

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

§

type Output = T

Should always be Self
§

impl<T> SaturatedConversion for T

§

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

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

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

§

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

§

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

§

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<S, T> UncheckedInto<T> for Swhere T: UncheckedFrom<S>,

§

fn unchecked_into(self) -> T

The counterpart to unchecked_from.
§

impl<T, S> UniqueSaturatedInto<T> for Swhere 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 Twhere V: MultiLane<T>,

§

fn vzip(self) -> V

source§

impl<T> WithSubscriber for T

source§

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
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
§

impl<T> MaybeDebug for Twhere T: Debug,

§

impl<T> MaybeDebug for Twhere T: Debug,

§

impl<T> MaybeRefUnwindSafe for Twhere T: RefUnwindSafe,

§

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