pub struct RpcClient { /* 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.
pub fn block_subscribe( &self, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<()>>>
Sourcepub fn snapshot_subscribe(
&self,
snapshot_url: String,
) -> RpcResult<TypedSubscriptionStream<SnapshotImportNotification>>
pub fn snapshot_subscribe( &self, snapshot_url: String, ) -> RpcResult<TypedSubscriptionStream<SnapshotImportNotification>>
Subscribe to snapshot import notifications via WebSocket.
This method allows clients to subscribe to real-time updates about snapshot import operations from a specific snapshot URL. The subscriber will receive notifications when the snapshot is being imported, including progress updates and completion status.
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending snapshot import notifications to the client.snapshot_url: The URL of the snapshot to import and monitor.
§Returns
This method does not return a value directly. Instead, it establishes a continuous WebSocket
subscription that will send SnapshotImportNotification notifications to the subscriber whenever
the snapshot import operation status changes.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "snapshotSubscribe",
"params": ["https://example.com/snapshot.json"]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 12345,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "snapshotNotification",
"params": {
"result": {
"snapshotId": "snapshot_20240107_123456",
"status": "InProgress",
"accountsLoaded": 1500,
"totalAccounts": 3000,
"error": null
},
"subscription": 12345
}
}§Notes
- The subscription remains active until explicitly unsubscribed or the connection is closed.
- Multiple clients can subscribe to different snapshot notifications simultaneously.
- The snapshot URL must be accessible and contain a valid snapshot format.
- Each subscription runs in its own async task for optimal performance.
§See Also
snapshotUnsubscribe: Remove an active snapshot subscription
pub fn slots_updates_subscribe( &self, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<()>>>
Sourcepub fn signature_subscribe(
&self,
signature_str: String,
config: Option<RpcSignatureSubscribeConfig>,
) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcSignatureResult>>>
pub fn signature_subscribe( &self, signature_str: String, config: Option<RpcSignatureSubscribeConfig>, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcSignatureResult>>>
Subscribe to signature status notifications via WebSocket.
This method allows clients to subscribe to status updates for a specific transaction signature. The subscriber will receive notifications when the transaction reaches the desired confirmation level or when it’s initially received by the network (if configured).
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending signature status notifications to the client.signature_str: The transaction signature to monitor, as a base-58 encoded string.config: Optional configuration specifying commitment level and notification preferences.
§Returns
This method does not return a value directly. Instead, it establishes a WebSocket subscription
that will send RpcResponse<RpcSignatureResult> notifications to the subscriber when the
transaction status changes.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "signatureSubscribe",
"params": [
"2id3YC2jK9G5Wo2phDx4gJVAew8DcY5NAojnVuao8rkxwPYPe8cSwE5GzhEgJA2y8fVjDEo6iR6ykBvDxrTQrtpb",
{
"commitment": "finalized",
"enableReceivedNotification": false
}
]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 0,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "signatureNotification",
"params": {
"result": {
"context": {
"slot": 5207624
},
"value": {
"err": null
}
},
"subscription": 0
}
}§Notes
- If the transaction already exists with the desired confirmation status, the subscriber will be notified immediately and the subscription will complete.
- The subscription automatically terminates after sending the first matching notification.
- Invalid signature formats will cause the subscription to be rejected with an error.
- Each subscription runs in its own async task for optimal performance.
§See Also
signatureUnsubscribe: Remove an active signature subscriptiongetSignatureStatuses: Get current status of multiple signatures
pub fn vote_subscribe( &self, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<()>>>
Sourcepub fn account_subscribe(
&self,
pubkey_str: String,
config: Option<RpcAccountSubscribeConfig>,
) -> RpcResult<TypedSubscriptionStream<RpcResponse<UiAccount>>>
pub fn account_subscribe( &self, pubkey_str: String, config: Option<RpcAccountSubscribeConfig>, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<UiAccount>>>
Subscribe to account change notifications via WebSocket.
This method allows clients to subscribe to updates for a specific account. The subscriber will receive notifications whenever the account’s data, lamports balance, ownership, or other properties change.
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending account update notifications to the client.pubkey_str: The account public key to monitor, as a base-58 encoded string.config: Optional configuration specifying commitment level and encoding format for account data.
§Returns
This method does not return a value directly. Instead, it establishes a continuous WebSocket
subscription that will send RpcResponse<UiAccount> notifications to the subscriber whenever
the account state changes.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "accountSubscribe",
"params": [
"CM78CPUeXjn8o3yroDHxUtKsZZgoy4GPkPPXfouKNH12",
{
"commitment": "finalized",
"encoding": "base64"
}
]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 23784,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "accountNotification",
"params": {
"result": {
"context": {
"slot": 5208469
},
"value": {
"data": ["base64EncodedAccountData", "base64"],
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111112",
"rentEpoch": 636
}
},
"subscription": 23784
}
}§Notes
- The subscription remains active until explicitly unsubscribed or the connection is closed.
- Account notifications are sent whenever any aspect of the account changes.
- The encoding format specified in the config determines how account data is serialized.
- Invalid public key formats will cause the subscription to be rejected with an error.
- Each subscription runs in its own async task to ensure optimal performance.
§See Also
accountUnsubscribe: Remove an active account subscriptiongetAccountInfo: Get current account information
pub fn root_subscribe( &self, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<()>>>
Sourcepub fn logs_subscribe(
&self,
mentions: Option<RpcTransactionLogsFilter>,
commitment: Option<CommitmentConfig>,
) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcLogsResponse>>>
pub fn logs_subscribe( &self, mentions: Option<RpcTransactionLogsFilter>, commitment: Option<CommitmentConfig>, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcLogsResponse>>>
Subscribe to logs notifications.
This method allows clients to subscribe to transaction log messages emitted during transaction execution. It supports filtering by signature, account mentions, or all transactions.
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending log notifications to the client.mentions: Optional filter for the subscription: can be a specific signature, account, or"all".commitment: Optional commitment level for filtering logs by block finality.
§Returns
This method establishes a continuous WebSocket subscription that streams
RpcLogsResponse notifications as new transactions are processed.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "logsSubscribe",
"params": [
{
"mentions": ["11111111111111111111111111111111"]
},
{
"commitment": "finalized"
}
]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 42,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "logsNotification",
"params": {
"result": {
"signature": "3s6n...",
"err": null,
"logs": ["Program 111111... invoke [1]", "Program 111111... success"]
},
"subscription": 42
}
}§Notes
- The subscription remains active until explicitly unsubscribed or the connection is closed.
- Each log subscription runs independently and supports filtering.
- Log messages may be truncated depending on cluster configuration.
§See Also
logsUnsubscribe: Remove an active logs subscription.
Sourcepub fn program_subscribe(
&self,
pubkey_str: String,
config: Option<RpcProgramSubscribeConfig>,
) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcKeyedAccount>>>
pub fn program_subscribe( &self, pubkey_str: String, config: Option<RpcProgramSubscribeConfig>, ) -> RpcResult<TypedSubscriptionStream<RpcResponse<RpcKeyedAccount>>>
Subscribe to notifications for all accounts owned by a specific program via WebSocket.
This method allows clients to subscribe to updates for any account whose owner
matches the given program ID. Notifications are sent whenever an account owned by
the program is created, updated, or deleted.
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending program account notifications to the client.pubkey_str: The program public key to monitor, as a base-58 encoded string.config: Optional configuration specifying commitment level, encoding format, and filters.
§Returns
This method does not return a value directly. Instead, it establishes a continuous WebSocket
subscription that will send RpcResponse<RpcKeyedAccount> notifications to the subscriber
whenever an account owned by the program changes.
§Filters
The optional config may include filters to narrow which account updates trigger notifications:
dataSize: Only notify for accounts with a specific data length (in bytes).memcmp: Only notify for accounts whose data matches specific bytes at a given offset.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "programSubscribe",
"params": [
"11111111111111111111111111111111",
{
"encoding": "base64",
"filters": [
{ "dataSize": 80 }
]
}
]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 24040,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "programNotification",
"params": {
"result": {
"context": { "slot": 5208469 },
"value": {
"pubkey": "H4vnBqifaSACnKa7acsxstsY1iV1bvJNxsCY7enrd1hq",
"account": {
"data": ["base64data", "base64"],
"executable": false,
"lamports": 33594,
"owner": "11111111111111111111111111111111",
"rentEpoch": 636,
"space": 36
}
}
},
"subscription": 24040
}
}§Notes
- The subscription remains active until explicitly unsubscribed or the connection is closed.
- Notifications include both the account pubkey and the full account data.
- Invalid public key formats will cause the subscription to be rejected with an error.
- Each subscription runs in its own async task for optimal performance.
§See Also
programUnsubscribe: Remove an active program subscriptiongetProgramAccounts: Get current accounts for a program
Sourcepub fn slot_subscribe(&self) -> RpcResult<TypedSubscriptionStream<SlotInfo>>
pub fn slot_subscribe(&self) -> RpcResult<TypedSubscriptionStream<SlotInfo>>
Subscribe to slot notifications.
This method allows clients to subscribe to updates for a specific slot. The subscriber will receive notifications whenever the slot changes.
§Parameters
meta: WebSocket metadata containing RPC context and connection information.subscriber: The subscription sink for sending slot update notifications to the client.
§Returns
This method does not return a value directly. Instead, it establishes a continuous WebSocket
subscription that will send SlotInfo notifications to the subscriber whenever
the slot changes.
§Example WebSocket Request
{
"jsonrpc": "2.0",
"id": 1,
"method": "slotSubscribe",
"params": [
{
"commitment": "finalized"
}
]
}§Example WebSocket Response (Subscription Confirmation)
{
"jsonrpc": "2.0",
"result": 5207624,
"id": 1
}§Example WebSocket Notification
{
"jsonrpc": "2.0",
"method": "slotNotification",
"params": {
"result": {
"slot": 5207624
},
"subscription": 5207624
}
}§Notes
- The subscription remains active until explicitly unsubscribed or the connection is closed.
- Slot notifications are sent whenever the slot changes.
- The subscription automatically terminates when the slot changes.
- Each subscription runs in its own async task for optimal performance.
§See Also
slotUnsubscribe: Remove an active slot subscription
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 Freeze for Client
impl !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
impl !UnwindSafe 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
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,
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.