pub struct FuelClient { /* private fields */ }
Implementations§
Source§impl FuelClient
impl FuelClient
pub fn new(url: impl AsRef<str>) -> Result<Self>
pub fn with_required_fuel_block_height( &mut self, new_height: Option<BlockHeight>, ) -> &mut Self
pub fn use_manual_consistency_policy( &mut self, height: Option<BlockHeight>, ) -> &mut Self
pub fn required_block_height(&self) -> Option<BlockHeight>
Sourcepub async fn query<ResponseData, Vars>(
&self,
q: Operation<ResponseData, Vars>,
) -> Result<ResponseData>where
Vars: Serialize,
ResponseData: DeserializeOwned + 'static,
pub async fn query<ResponseData, Vars>(
&self,
q: Operation<ResponseData, Vars>,
) -> Result<ResponseData>where
Vars: Serialize,
ResponseData: DeserializeOwned + 'static,
Send the GraphQL query to the client.
pub fn latest_stf_version(&self) -> Option<StateTransitionBytecodeVersion>
pub fn latest_consensus_parameters_version( &self, ) -> Option<ConsensusParametersVersion>
pub async fn health(&self) -> Result<bool>
pub async fn node_info(&self) -> Result<NodeInfo>
pub async fn latest_gas_price(&self) -> Result<LatestGasPrice>
pub async fn estimate_gas_price( &self, block_horizon: u32, ) -> Result<EstimateGasPrice>
pub async fn connected_peers_info(&self) -> Result<Vec<PeerInfo>>
pub async fn chain_info(&self) -> Result<ChainInfo>
pub async fn consensus_parameters( &self, version: i32, ) -> Result<Option<ConsensusParameters>>
pub async fn state_transition_byte_code_by_version( &self, version: i32, ) -> Result<Option<StateTransitionBytecode>>
pub async fn state_transition_byte_code_by_root( &self, root: Bytes32, ) -> Result<Option<StateTransitionBytecode>>
Sourcepub async fn dry_run(
&self,
txs: &[Transaction],
) -> Result<Vec<TransactionExecutionStatus>>
pub async fn dry_run( &self, txs: &[Transaction], ) -> Result<Vec<TransactionExecutionStatus>>
Default dry run, matching the exact configuration as the node
Sourcepub async fn dry_run_opt(
&self,
txs: &[Transaction],
utxo_validation: Option<bool>,
gas_price: Option<u64>,
at_height: Option<BlockHeight>,
) -> Result<Vec<TransactionExecutionStatus>>
pub async fn dry_run_opt( &self, txs: &[Transaction], utxo_validation: Option<bool>, gas_price: Option<u64>, at_height: Option<BlockHeight>, ) -> Result<Vec<TransactionExecutionStatus>>
Dry run with options to override the node behavior
Sourcepub async fn storage_read_replay(
&self,
height: &BlockHeight,
) -> Result<Vec<StorageReadReplayEvent>>
pub async fn storage_read_replay( &self, height: &BlockHeight, ) -> Result<Vec<StorageReadReplayEvent>>
Get storage read replay for a block
Sourcepub async fn assemble_tx(
&self,
tx: &Transaction,
block_horizon: u32,
required_balances: Vec<RequiredBalance>,
fee_address_index: u16,
exclude: Option<(Vec<UtxoId>, Vec<Nonce>)>,
estimate_predicates: bool,
reserve_gas: Option<u64>,
) -> Result<AssembleTransactionResult>
pub async fn assemble_tx( &self, tx: &Transaction, block_horizon: u32, required_balances: Vec<RequiredBalance>, fee_address_index: u16, exclude: Option<(Vec<UtxoId>, Vec<Nonce>)>, estimate_predicates: bool, reserve_gas: Option<u64>, ) -> Result<AssembleTransactionResult>
Assembles the transaction based on the provided requirements. The return transaction contains:
- Input coins to cover
required_balances
- Input coins to cover the fee of the transaction based on the gas price from
block_horizon
Change
orDestroy
outputs for all assets from the inputsVariable
outputs in the case they are required during the executionContract
inputs and outputs in the case they are required during the execution- Reserved witness slots for signed coins filled with
64
zeroes - Set script gas limit(unless
script
is empty) - Estimated predicates, if
estimate_predicates == true
Returns an error if:
- The number of required balances exceeds the maximum number of inputs allowed.
- The fee address index is out of bounds.
- The same asset has multiple change policies(either the receiver of
the change is different, or one of the policies states about the destruction
of the token while the other does not). The
Change
output from the transaction also count as aChangePolicy
. - The number of excluded coin IDs exceeds the maximum number of inputs allowed.
- Required assets have multiple entries.
- If accounts don’t have sufficient amounts to cover the transaction requirements in assets.
- If a constructed transaction breaks the rules defined by consensus parameters.
Sourcepub async fn estimate_predicates(&self, tx: &mut Transaction) -> Result<()>
pub async fn estimate_predicates(&self, tx: &mut Transaction) -> Result<()>
Estimate predicates for the transaction
pub async fn submit(&self, tx: &Transaction) -> Result<TransactionId>
pub async fn submit_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<TransactionId>
Sourcepub async fn submit_and_await_commit(
&self,
tx: &Transaction,
) -> Result<TransactionStatus>
pub async fn submit_and_await_commit( &self, tx: &Transaction, ) -> Result<TransactionStatus>
Similar to Self::submit_and_await_commit_opt
, but with default options.
Sourcepub async fn submit_and_await_commit_opt(
&self,
tx: &Transaction,
estimate_predicates: Option<bool>,
) -> Result<TransactionStatus>
pub async fn submit_and_await_commit_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<TransactionStatus>
Submit the transaction and wait for it either to be included in
a block or removed from TxPool
.
If estimate_predicates
is set, the predicates will be estimated before
the transaction is inserted into transaction pool.
This will wait forever if needed, so consider wrapping this call
with a tokio::time::timeout
.
Sourcepub async fn submit_and_await_commit_with_tx(
&self,
tx: &Transaction,
) -> Result<StatusWithTransaction>
pub async fn submit_and_await_commit_with_tx( &self, tx: &Transaction, ) -> Result<StatusWithTransaction>
Similar to Self::submit_and_await_commit
, but the status also contains transaction.
Sourcepub async fn submit_and_await_commit_with_tx_opt(
&self,
tx: &Transaction,
estimate_predicates: Option<bool>,
) -> Result<StatusWithTransaction>
pub async fn submit_and_await_commit_with_tx_opt( &self, tx: &Transaction, estimate_predicates: Option<bool>, ) -> Result<StatusWithTransaction>
Similar to Self::submit_and_await_commit_opt
, but the status also contains transaction.
Sourcepub async fn submit_and_await_status<'a>(
&'a self,
tx: &'a Transaction,
) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
pub async fn submit_and_await_status<'a>( &'a self, tx: &'a Transaction, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
Similar to Self::submit_and_await_commit
, but includes all intermediate states.
Sourcepub async fn submit_and_await_status_opt<'a>(
&'a self,
tx: &'a Transaction,
estimate_predicates: Option<bool>,
) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
pub async fn submit_and_await_status_opt<'a>( &'a self, tx: &'a Transaction, estimate_predicates: Option<bool>, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
Similar to Self::submit_and_await_commit_opt
, but includes all intermediate states.
Sourcepub async fn contract_storage_slots<'a>(
&'a self,
contract_id: &'a ContractId,
) -> Result<impl Stream<Item = Result<(Bytes32, Vec<u8>)>> + 'a>
pub async fn contract_storage_slots<'a>( &'a self, contract_id: &'a ContractId, ) -> Result<impl Stream<Item = Result<(Bytes32, Vec<u8>)>> + 'a>
Requests all storage slots for the contract_id
.
Sourcepub async fn contract_storage_balances<'a>(
&'a self,
contract_id: &'a ContractId,
) -> Result<impl Stream<Item = Result<ContractBalance>> + 'a>
pub async fn contract_storage_balances<'a>( &'a self, contract_id: &'a ContractId, ) -> Result<impl Stream<Item = Result<ContractBalance>> + 'a>
Requests all storage balances for the contract_id
.
pub async fn contract_slots_values( &self, contract_id: &ContractId, block_height: Option<BlockHeight>, requested_storage_slots: Vec<Bytes32>, ) -> Result<Vec<(Bytes32, Vec<u8>)>>
pub async fn contract_balance_values( &self, contract_id: &ContractId, block_height: Option<BlockHeight>, requested_storage_slots: Vec<AssetId>, ) -> Result<Vec<ContractBalance>>
pub async fn start_session(&self) -> Result<String>
pub async fn end_session(&self, id: &str) -> Result<bool>
pub async fn reset(&self, id: &str) -> Result<bool>
pub async fn execute(&self, id: &str, op: &Instruction) -> Result<bool>
pub async fn register(&self, id: &str, register: u32) -> Result<Word>
pub async fn memory(&self, id: &str, start: u32, size: u32) -> Result<Vec<u8>>
pub async fn set_breakpoint( &self, session_id: &str, contract: ContractId, pc: u64, ) -> Result<()>
pub async fn set_single_stepping( &self, session_id: &str, enable: bool, ) -> Result<()>
pub async fn start_tx( &self, session_id: &str, tx: &Transaction, ) -> Result<RunResult>
pub async fn continue_tx(&self, session_id: &str) -> Result<RunResult>
pub async fn transaction( &self, id: &TxId, ) -> Result<Option<TransactionResponse>>
Sourcepub async fn transaction_status(&self, id: &TxId) -> Result<TransactionStatus>
pub async fn transaction_status(&self, id: &TxId) -> Result<TransactionStatus>
Get the status of a transaction
Sourcepub async fn subscribe_transaction_status<'a>(
&'a self,
id: &'a TxId,
) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
pub async fn subscribe_transaction_status<'a>( &'a self, id: &'a TxId, ) -> Result<impl Stream<Item = Result<TransactionStatus>> + 'a>
Subscribe to the status of a transaction
Sourcepub async fn await_transaction_commit(
&self,
id: &TxId,
) -> Result<TransactionStatus>
pub async fn await_transaction_commit( &self, id: &TxId, ) -> Result<TransactionStatus>
Awaits for the transaction to be committed into a block
This will wait forever if needed, so consider wrapping this call
with a tokio::time::timeout
.
Sourcepub async fn transactions(
&self,
request: PaginationRequest<String>,
) -> Result<PaginatedResult<TransactionResponse, String>>
pub async fn transactions( &self, request: PaginationRequest<String>, ) -> Result<PaginatedResult<TransactionResponse, String>>
returns a paginated set of transactions sorted by block height
Sourcepub async fn transactions_by_owner(
&self,
owner: &Address,
request: PaginationRequest<String>,
) -> Result<PaginatedResult<TransactionResponse, String>>
pub async fn transactions_by_owner( &self, owner: &Address, request: PaginationRequest<String>, ) -> Result<PaginatedResult<TransactionResponse, String>>
Returns a paginated set of transactions associated with a txo owner address.
pub async fn receipts(&self, id: &TxId) -> Result<Option<Vec<Receipt>>>
pub async fn produce_blocks( &self, blocks_to_produce: u32, start_timestamp: Option<u64>, ) -> Result<BlockHeight>
pub async fn block(&self, id: &BlockId) -> Result<Option<Block>>
pub async fn block_by_height( &self, height: BlockHeight, ) -> Result<Option<Block>>
pub async fn da_compressed_block( &self, height: BlockHeight, ) -> Result<Option<Vec<u8>>>
Sourcepub async fn blob_exists(&self, id: BlobId) -> Result<bool>
pub async fn blob_exists(&self, id: BlobId) -> Result<bool>
Check whether a blob with ID exists
Sourcepub async fn blocks(
&self,
request: PaginationRequest<String>,
) -> Result<PaginatedResult<Block, String>>
pub async fn blocks( &self, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Block, String>>
Retrieve multiple blocks
pub async fn coin(&self, id: &UtxoId) -> Result<Option<Coin>>
Sourcepub async fn coins(
&self,
owner: &Address,
asset_id: Option<&AssetId>,
request: PaginationRequest<String>,
) -> Result<PaginatedResult<Coin, String>>
pub async fn coins( &self, owner: &Address, asset_id: Option<&AssetId>, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Coin, String>>
Retrieve a page of coins by their owner
Sourcepub async fn coins_to_spend(
&self,
owner: &Address,
spend_query: Vec<(AssetId, u128, Option<u16>)>,
excluded_ids: Option<(Vec<UtxoId>, Vec<Nonce>)>,
) -> Result<Vec<Vec<CoinType>>>
pub async fn coins_to_spend( &self, owner: &Address, spend_query: Vec<(AssetId, u128, Option<u16>)>, excluded_ids: Option<(Vec<UtxoId>, Vec<Nonce>)>, ) -> Result<Vec<Vec<CoinType>>>
Retrieve coins to spend in a transaction
pub async fn contract(&self, id: &ContractId) -> Result<Option<Contract>>
pub async fn contract_balance( &self, id: &ContractId, asset: Option<&AssetId>, ) -> Result<u64>
pub async fn balance( &self, owner: &Address, asset_id: Option<&AssetId>, ) -> Result<u64>
pub async fn balances( &self, owner: &Address, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Balance, String>>
pub async fn contract_balances( &self, contract: &ContractId, request: PaginationRequest<String>, ) -> Result<PaginatedResult<ContractBalance, String>>
pub async fn message(&self, nonce: &Nonce) -> Result<Option<Message>>
pub async fn messages( &self, owner: Option<&Address>, request: PaginationRequest<String>, ) -> Result<PaginatedResult<Message, String>>
pub async fn contract_info( &self, contract: &ContractId, ) -> Result<Option<Contract>>
pub async fn message_status(&self, nonce: &Nonce) -> Result<MessageStatus>
Sourcepub async fn message_proof(
&self,
transaction_id: &TxId,
nonce: &Nonce,
commit_block_id: Option<&BlockId>,
commit_block_height: Option<BlockHeight>,
) -> Result<MessageProof>
pub async fn message_proof( &self, transaction_id: &TxId, nonce: &Nonce, commit_block_id: Option<&BlockId>, commit_block_height: Option<BlockHeight>, ) -> Result<MessageProof>
Request a merkle proof of an output message.
pub async fn relayed_transaction_status( &self, id: &Bytes32, ) -> Result<Option<RelayedTransactionStatus>>
pub async fn asset_info(&self, asset_id: &AssetId) -> Result<AssetDetail>
Trait Implementations§
Source§impl Clone for FuelClient
impl Clone for FuelClient
Source§fn clone(&self) -> FuelClient
fn clone(&self) -> FuelClient
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FuelClient
impl Debug for FuelClient
Source§impl<S> From<S> for FuelClientwhere
S: Into<SocketAddr>,
impl<S> From<S> for FuelClientwhere
S: Into<SocketAddr>,
Auto Trait Implementations§
impl Freeze for FuelClient
impl !RefUnwindSafe for FuelClient
impl Send for FuelClient
impl Sync for FuelClient
impl Unpin for FuelClient
impl !UnwindSafe for FuelClient
Blanket Implementations§
Source§impl<T> AnyDebug for T
impl<T> AnyDebug for T
Source§fn as_any_ref(&self) -> &(dyn Any + 'static)
fn as_any_ref(&self) -> &(dyn Any + 'static)
Any
.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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FmtForward for T
impl<T> FmtForward for T
Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.Source§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.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>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
Source§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
Source§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 moreSource§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 moreSource§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
Source§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
Source§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.Source§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.Source§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.Source§impl<T> StorageAsMut for T
impl<T> StorageAsMut for T
fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>where
Type: Mappable,
Source§impl<T> StorageAsRef for T
impl<T> StorageAsRef for T
fn storage<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>where
Type: Mappable,
Source§impl<T> Tap for T
impl<T> Tap for T
Source§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read moreSource§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read moreSource§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read moreSource§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read moreSource§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read moreSource§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read moreSource§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.Source§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.Source§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.Source§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.Source§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.Source§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.