pub struct AccountsScanClient { /* private fields */ }Expand description
The Client.
Implementations§
Source§impl Client
impl Client
Sourcepub fn new(sender: RpcChannel) -> Self
pub fn new(sender: RpcChannel) -> Self
Creates a new Client.
Sourcepub fn get_program_accounts(
&self,
program_id_str: String,
config: Option<RpcProgramAccountsConfig>,
) -> impl Future<Output = RpcResult<OptionalContext<Vec<RpcKeyedAccount>>>>
pub fn get_program_accounts( &self, program_id_str: String, config: Option<RpcProgramAccountsConfig>, ) -> impl Future<Output = RpcResult<OptionalContext<Vec<RpcKeyedAccount>>>>
Returns all accounts owned by the specified program ID, optionally filtered and configured.
This RPC method retrieves all accounts whose owner is the given program. It is commonly used to scan on-chain program state, such as finding all token accounts, order books, or PDAs owned by a given program. The results can be filtered using data size, memory comparisons, and token-specific criteria.
§Parameters
program_id_str: Base-58 encoded program ID to scan for owned accounts.config: Optional configuration object allowing filters, encoding options, context inclusion, and sorting of results.
§Returns
A future resolving to a vector of RpcKeyedAccounts wrapped in an OptionalContext.
Each result includes the account’s public key and full account data.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getProgramAccounts",
"params": [
"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
{
"filters": [
{
"dataSize": 165
},
{
"memcmp": {
"offset": 0,
"bytes": "3N5kaPhfUGuTQZPQ3mnDZZGkUZ97rS1NVSC94QkgUzKN"
}
}
],
"encoding": "jsonParsed",
"commitment": "finalized",
"withContext": true
}
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 12345678
},
"value": [
{
"pubkey": "BvckZ2XDJmJLho7LnFnV7zM19fRZqnvfs8Qy3fLo6EEk",
"account": {
"lamports": 2039280,
"data": {...},
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"executable": false,
"rentEpoch": 255,
"space": 165
}
},
...
]
},
"id": 1
}§Filters
DataSize(u64): Only include accounts with a matching data length.Memcmp: Match byte patterns at specified offsets in account data.TokenAccountState: Match on internal token account state (e.g. initialized).
§See also
RpcProgramAccountsConfig: Main config for filtering and encoding.- [
UiAccount]: Returned data representation. RpcKeyedAccount: Wrapper struct with both pubkey and account fields.
Sourcepub fn get_largest_accounts(
&self,
config: Option<RpcLargestAccountsConfig>,
) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcAccountBalance>>>>
pub fn get_largest_accounts( &self, config: Option<RpcLargestAccountsConfig>, ) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcAccountBalance>>>>
Returns the 20 largest accounts by lamport balance, optionally filtered by account type.
This RPC endpoint is useful for analytics, network monitoring, or understanding the distribution of large token holders. It can also be used for sanity checks on protocol activity or whale tracking.
§Parameters
config: Optional configuration allowing for filtering on specific account types such as circulating or non-circulating accounts.
§Returns
A future resolving to a RpcResponse containing a list of the 20 largest accounts
by lamports, each represented as an RpcAccountBalance.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getLargestAccounts",
"params": [
{
"filter": "circulating"
}
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 15039284
},
"value": [
{
"lamports": 999999999999,
"address": "9xQeWvG816bUx9EPaZzdd5eUjuJcN3TBDZcd8DM33zDf"
},
...
]
},
"id": 1
}§See also
RpcLargestAccountsConfig(defined elsewhere): Config struct that may specify afilter.RpcAccountBalance: Struct representing account address and lamport amount.
§Notes
This method only returns up to 20 accounts and is primarily intended for inspection or diagnostics.
Sourcepub fn get_supply(
&self,
config: Option<RpcSupplyConfig>,
) -> impl Future<Output = RpcResult<RpcResponse<RpcSupply>>>
pub fn get_supply( &self, config: Option<RpcSupplyConfig>, ) -> impl Future<Output = RpcResult<RpcResponse<RpcSupply>>>
Returns information about the current token supply on the network, including circulating and non-circulating amounts.
This method provides visibility into the economic state of the chain by exposing the total amount of tokens issued, how much is in circulation, and what is held in non-circulating accounts.
§Parameters
config: OptionalRpcSupplyConfigthat allows specifying commitment level and whether to exclude the list of non-circulating accounts from the response.
§Returns
A future resolving to a RpcResponse containing a RpcSupply struct with
supply metrics in lamports.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getSupply",
"params": [
{
"excludeNonCirculatingAccountsList": true
}
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 18000345
},
"value": {
"total": 510000000000000000,
"circulating": 420000000000000000,
"nonCirculating": 90000000000000000,
"nonCirculatingAccounts": []
}
},
"id": 1
}§See also
RpcSupplyConfig: Configuration struct for optional parameters.RpcSupply: Response struct with total, circulating, and non-circulating amounts.
§Notes
- All values are returned in lamports.
- Use this method to monitor token inflation, distribution, and locked supply dynamics.
Sourcepub fn get_token_largest_accounts(
&self,
mint_str: String,
commitment: Option<CommitmentConfig>,
) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcTokenAccountBalance>>>>
pub fn get_token_largest_accounts( &self, mint_str: String, commitment: Option<CommitmentConfig>, ) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcTokenAccountBalance>>>>
Returns the addresses and balances of the largest accounts for a given SPL token mint.
This method is useful for analyzing token distribution and concentration, especially to assess decentralization or identify whales.
§Parameters
mint_str: The base-58 encoded public key of the mint account of the SPL token.commitment: Optional commitment level to query the state of the ledger at different levels of finality (e.g.,Processed,Confirmed,Finalized).
§Returns
A BoxFuture resolving to a RpcResponse with a vector of RpcTokenAccountBalances,
representing the largest accounts holding the token.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenLargestAccounts",
"params": [
"So11111111111111111111111111111111111111112"
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": {
"slot": 18300000
},
"value": [
{
"address": "5xy34...Abcd1",
"amount": "100000000000",
"decimals": 9,
"uiAmount": 100.0,
"uiAmountString": "100.0"
},
{
"address": "2aXyZ...Efgh2",
"amount": "50000000000",
"decimals": 9,
"uiAmount": 50.0,
"uiAmountString": "50.0"
}
]
},
"id": 1
}§See also
- [
UiTokenAmount]: Describes the token amount in different representations. RpcTokenAccountBalance: Includes token holder address and amount.
§Notes
- Balances are sorted in descending order.
- Token decimals are used to format the raw amount into a user-friendly float string.
Sourcepub fn get_token_accounts_by_owner(
&self,
owner_str: String,
token_account_filter: RpcTokenAccountsFilter,
config: Option<RpcAccountInfoConfig>,
) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcKeyedAccount>>>>
pub fn get_token_accounts_by_owner( &self, owner_str: String, token_account_filter: RpcTokenAccountsFilter, config: Option<RpcAccountInfoConfig>, ) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcKeyedAccount>>>>
Returns all SPL Token accounts owned by a specific wallet address, optionally filtered by mint or program.
This endpoint is commonly used by wallets and explorers to retrieve all token balances associated with a user, and optionally narrow results to a specific token mint or program.
§Parameters
owner_str: The base-58 encoded public key of the wallet owner.token_account_filter: ARpcTokenAccountsFilterenum that allows filtering results by:- Mint address
- Program ID (usually the SPL Token program)
config: Optional configuration for encoding, data slicing, and commitment.
§Returns
A BoxFuture resolving to a RpcResponse containing a vector of RpcKeyedAccounts.
Each entry contains the public key of a token account and its deserialized account data.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByOwner",
"params": [
"4Nd1mKxQmZj...Aa123",
{
"mint": "So11111111111111111111111111111111111111112"
},
{
"encoding": "jsonParsed"
}
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": { "slot": 19281234 },
"value": [
{
"pubkey": "2sZp...xyz",
"account": {
"lamports": 2039280,
"data": { /* token info */ },
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"executable": false,
"rentEpoch": 123
}
}
]
},
"id": 1
}§Filter Enum
RpcTokenAccountsFilter can be:
Mint(String)— return only token accounts associated with the specified mint.ProgramId(String)— return only token accounts owned by the specified program (e.g. SPL Token program).
§See also
RpcKeyedAccount: Contains the pubkey and the associated account data.RpcAccountInfoConfig: Allows tweaking how account data is returned (encoding, commitment, etc.).- [
UiAccountEncoding],CommitmentConfig
§Notes
- The response may contain
Option::Nonefor accounts that couldn’t be fetched or decoded. - Encoding
jsonParsedis recommended when integrating with frontend UIs.
Sourcepub fn get_token_accounts_by_delegate(
&self,
delegate_str: String,
token_account_filter: RpcTokenAccountsFilter,
config: Option<RpcAccountInfoConfig>,
) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcKeyedAccount>>>>
pub fn get_token_accounts_by_delegate( &self, delegate_str: String, token_account_filter: RpcTokenAccountsFilter, config: Option<RpcAccountInfoConfig>, ) -> impl Future<Output = RpcResult<RpcResponse<Vec<RpcKeyedAccount>>>>
Returns all SPL Token accounts that have delegated authority to a specific address, with optional filters.
This RPC method is useful for identifying which token accounts have granted delegate rights to a particular wallet or program (commonly used in DeFi apps or custodial flows).
§Parameters
delegate_str: The base-58 encoded public key of the delegate authority.token_account_filter: ARpcTokenAccountsFilterenum to filter results by mint or program.config: OptionalRpcAccountInfoConfigfor controlling account encoding, commitment level, etc.
§Returns
A BoxFuture resolving to a RpcResponse containing a vector of RpcKeyedAccounts,
each pairing a token account public key with its associated on-chain data.
§Example Request (JSON-RPC)
{
"jsonrpc": "2.0",
"id": 1,
"method": "getTokenAccountsByDelegate",
"params": [
"3qTwHcdK1j...XYZ",
{ "programId": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA" },
{ "encoding": "jsonParsed" }
]
}§Example Response
{
"jsonrpc": "2.0",
"result": {
"context": { "slot": 19301523 },
"value": [
{
"pubkey": "8H5k...abc",
"account": {
"lamports": 2039280,
"data": { /* token info */ },
"owner": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA",
"executable": false,
"rentEpoch": 131
}
}
]
},
"id": 1
}§Filters
Use RpcTokenAccountsFilter to limit the query scope:
Mint(String)– return accounts associated with a given token.ProgramId(String)– return accounts under a specific program (e.g., SPL Token program).
§Notes
- Useful for monitoring delegated token activity in governance or trading protocols.
- If a token account doesn’t have a delegate, it won’t be included in results.
§See also
RpcKeyedAccount,RpcAccountInfoConfig,CommitmentConfig, [UiAccountEncoding]
Trait Implementations§
Source§impl From<RpcChannel> for Client
impl From<RpcChannel> for Client
Source§fn from(channel: RpcChannel) -> Self
fn from(channel: RpcChannel) -> Self
Auto Trait Implementations§
impl !RefUnwindSafe for Client
impl !UnwindSafe for Client
impl Freeze for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
Blanket Implementations§
Source§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
Source§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read moreSource§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read moreSource§fn aggregate_filter<P>(self, f: P) -> Self::Output
fn aggregate_filter<P>(self, f: P) -> Self::Output
Source§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§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>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§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.Source§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<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
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> IntoSql for T
impl<T> IntoSql for T
Source§fn into_sql<T>(self) -> Self::Expression
fn into_sql<T>(self) -> Self::Expression
self to an expression for Diesel’s query builder. Read moreSource§fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
fn as_sql<'a, T>(&'a self) -> <&'a Self as AsExpression<T>>::Expression
&self to an expression for Diesel’s query builder. 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> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
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.