pub struct StakeTableInstance<P, N = Ethereum> {
address: Address,
provider: P,
_network: PhantomData<N>,
}Expand description
A StakeTable instance.
Contains type-safe methods for interacting with an on-chain instance of the
StakeTable contract located at a given address, using a given
provider P.
If the contract bytecode is available (see the sol!
documentation on how to provide it), the deploy and deploy_builder methods can
be used to deploy a new instance of the contract.
See the module-level documentation for all the available methods.
Fields§
§address: Address§provider: P§_network: PhantomData<N>Implementations§
Source§impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Instantiation and getters/setters.
impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Instantiation and getters/setters.
Sourcepub const fn new(address: Address, provider: P) -> Self
pub const fn new(address: Address, provider: P) -> Self
Creates a new wrapper around an on-chain StakeTable contract instance.
See the wrapper’s documentation for more details.
Sourcepub async fn deploy(provider: P) -> Result<StakeTableInstance<P, N>>
pub async fn deploy(provider: P) -> Result<StakeTableInstance<P, N>>
Deploys this contract using the given provider and constructor arguments, if any.
Returns a new instance of the contract, if the deployment was successful.
For more fine-grained control over the deployment process, use deploy_builder instead.
Sourcepub fn deploy_builder(provider: P) -> RawCallBuilder<P, N>
pub fn deploy_builder(provider: P) -> RawCallBuilder<P, N>
Creates a RawCallBuilder for deploying this contract using the given provider
and constructor arguments, if any.
This is a simple wrapper around creating a RawCallBuilder with the data set to
the bytecode concatenated with the constructor’s ABI-encoded arguments.
Sourcepub fn set_address(&mut self, address: Address)
pub fn set_address(&mut self, address: Address)
Sets the address.
Source§impl<P: Clone, N> StakeTableInstance<&P, N>
impl<P: Clone, N> StakeTableInstance<&P, N>
Sourcepub fn with_cloned_provider(self) -> StakeTableInstance<P, N>
pub fn with_cloned_provider(self) -> StakeTableInstance<P, N>
Clones the provider and returns a new instance with the cloned provider.
Source§impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Function calls.
impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Function calls.
Sourcepub fn call_builder<C: SolCall>(&self, call: &C) -> SolCallBuilder<&P, C, N>
pub fn call_builder<C: SolCall>(&self, call: &C) -> SolCallBuilder<&P, C, N>
Creates a new call builder using this contract instance’s provider and address.
Note that the call can be any function call, not just those defined in this contract. Prefer using the other methods for building type-safe contract calls.
Sourcepub fn UPGRADE_INTERFACE_VERSION(
&self,
) -> SolCallBuilder<&P, UPGRADE_INTERFACE_VERSIONCall, N>
pub fn UPGRADE_INTERFACE_VERSION( &self, ) -> SolCallBuilder<&P, UPGRADE_INTERFACE_VERSIONCall, N>
Creates a new call builder for the [UPGRADE_INTERFACE_VERSION] function.
Sourcepub fn _hashBlsKey(
&self,
blsVK: <G2Point as SolType>::RustType,
) -> SolCallBuilder<&P, _hashBlsKeyCall, N>
pub fn _hashBlsKey( &self, blsVK: <G2Point as SolType>::RustType, ) -> SolCallBuilder<&P, _hashBlsKeyCall, N>
Creates a new call builder for the [_hashBlsKey] function.
Sourcepub fn blsKeys(
&self,
blsKeyHash: FixedBytes<32>,
) -> SolCallBuilder<&P, blsKeysCall, N>
pub fn blsKeys( &self, blsKeyHash: FixedBytes<32>, ) -> SolCallBuilder<&P, blsKeysCall, N>
Creates a new call builder for the [blsKeys] function.
Sourcepub fn claimValidatorExit(
&self,
validator: Address,
) -> SolCallBuilder<&P, claimValidatorExitCall, N>
pub fn claimValidatorExit( &self, validator: Address, ) -> SolCallBuilder<&P, claimValidatorExitCall, N>
Creates a new call builder for the [claimValidatorExit] function.
Sourcepub fn claimWithdrawal(
&self,
validator: Address,
) -> SolCallBuilder<&P, claimWithdrawalCall, N>
pub fn claimWithdrawal( &self, validator: Address, ) -> SolCallBuilder<&P, claimWithdrawalCall, N>
Creates a new call builder for the [claimWithdrawal] function.
Sourcepub fn delegate(
&self,
validator: Address,
amount: U256,
) -> SolCallBuilder<&P, delegateCall, N>
pub fn delegate( &self, validator: Address, amount: U256, ) -> SolCallBuilder<&P, delegateCall, N>
Creates a new call builder for the [delegate] function.
Sourcepub fn delegations(
&self,
validator: Address,
delegator: Address,
) -> SolCallBuilder<&P, delegationsCall, N>
pub fn delegations( &self, validator: Address, delegator: Address, ) -> SolCallBuilder<&P, delegationsCall, N>
Creates a new call builder for the [delegations] function.
Sourcepub fn deregisterValidator(
&self,
) -> SolCallBuilder<&P, deregisterValidatorCall, N>
pub fn deregisterValidator( &self, ) -> SolCallBuilder<&P, deregisterValidatorCall, N>
Creates a new call builder for the [deregisterValidator] function.
Sourcepub fn exitEscrowPeriod(&self) -> SolCallBuilder<&P, exitEscrowPeriodCall, N>
pub fn exitEscrowPeriod(&self) -> SolCallBuilder<&P, exitEscrowPeriodCall, N>
Creates a new call builder for the [exitEscrowPeriod] function.
Sourcepub fn getVersion(&self) -> SolCallBuilder<&P, getVersionCall, N>
pub fn getVersion(&self) -> SolCallBuilder<&P, getVersionCall, N>
Creates a new call builder for the [getVersion] function.
Sourcepub fn initialize(
&self,
_tokenAddress: Address,
_lightClientAddress: Address,
_exitEscrowPeriod: U256,
_timelock: Address,
) -> SolCallBuilder<&P, initializeCall, N>
pub fn initialize( &self, _tokenAddress: Address, _lightClientAddress: Address, _exitEscrowPeriod: U256, _timelock: Address, ) -> SolCallBuilder<&P, initializeCall, N>
Creates a new call builder for the [initialize] function.
Sourcepub fn initializedAtBlock(
&self,
) -> SolCallBuilder<&P, initializedAtBlockCall, N>
pub fn initializedAtBlock( &self, ) -> SolCallBuilder<&P, initializedAtBlockCall, N>
Creates a new call builder for the [initializedAtBlock] function.
Sourcepub fn lightClient(&self) -> SolCallBuilder<&P, lightClientCall, N>
pub fn lightClient(&self) -> SolCallBuilder<&P, lightClientCall, N>
Creates a new call builder for the [lightClient] function.
Sourcepub fn owner(&self) -> SolCallBuilder<&P, ownerCall, N>
pub fn owner(&self) -> SolCallBuilder<&P, ownerCall, N>
Creates a new call builder for the [owner] function.
Sourcepub fn proxiableUUID(&self) -> SolCallBuilder<&P, proxiableUUIDCall, N>
pub fn proxiableUUID(&self) -> SolCallBuilder<&P, proxiableUUIDCall, N>
Creates a new call builder for the [proxiableUUID] function.
Sourcepub fn registerValidator(
&self,
blsVK: <G2Point as SolType>::RustType,
schnorrVK: <EdOnBN254Point as SolType>::RustType,
blsSig: <G1Point as SolType>::RustType,
commission: u16,
) -> SolCallBuilder<&P, registerValidatorCall, N>
pub fn registerValidator( &self, blsVK: <G2Point as SolType>::RustType, schnorrVK: <EdOnBN254Point as SolType>::RustType, blsSig: <G1Point as SolType>::RustType, commission: u16, ) -> SolCallBuilder<&P, registerValidatorCall, N>
Creates a new call builder for the [registerValidator] function.
Sourcepub fn renounceOwnership(&self) -> SolCallBuilder<&P, renounceOwnershipCall, N>
pub fn renounceOwnership(&self) -> SolCallBuilder<&P, renounceOwnershipCall, N>
Creates a new call builder for the [renounceOwnership] function.
Sourcepub fn token(&self) -> SolCallBuilder<&P, tokenCall, N>
pub fn token(&self) -> SolCallBuilder<&P, tokenCall, N>
Creates a new call builder for the [token] function.
Sourcepub fn transferOwnership(
&self,
newOwner: Address,
) -> SolCallBuilder<&P, transferOwnershipCall, N>
pub fn transferOwnership( &self, newOwner: Address, ) -> SolCallBuilder<&P, transferOwnershipCall, N>
Creates a new call builder for the [transferOwnership] function.
Sourcepub fn undelegate(
&self,
validator: Address,
amount: U256,
) -> SolCallBuilder<&P, undelegateCall, N>
pub fn undelegate( &self, validator: Address, amount: U256, ) -> SolCallBuilder<&P, undelegateCall, N>
Creates a new call builder for the [undelegate] function.
Sourcepub fn undelegations(
&self,
validator: Address,
delegator: Address,
) -> SolCallBuilder<&P, undelegationsCall, N>
pub fn undelegations( &self, validator: Address, delegator: Address, ) -> SolCallBuilder<&P, undelegationsCall, N>
Creates a new call builder for the [undelegations] function.
Sourcepub fn updateConsensusKeys(
&self,
newBlsVK: <G2Point as SolType>::RustType,
newSchnorrVK: <EdOnBN254Point as SolType>::RustType,
newBlsSig: <G1Point as SolType>::RustType,
) -> SolCallBuilder<&P, updateConsensusKeysCall, N>
pub fn updateConsensusKeys( &self, newBlsVK: <G2Point as SolType>::RustType, newSchnorrVK: <EdOnBN254Point as SolType>::RustType, newBlsSig: <G1Point as SolType>::RustType, ) -> SolCallBuilder<&P, updateConsensusKeysCall, N>
Creates a new call builder for the [updateConsensusKeys] function.
Sourcepub fn upgradeToAndCall(
&self,
newImplementation: Address,
data: Bytes,
) -> SolCallBuilder<&P, upgradeToAndCallCall, N>
pub fn upgradeToAndCall( &self, newImplementation: Address, data: Bytes, ) -> SolCallBuilder<&P, upgradeToAndCallCall, N>
Creates a new call builder for the [upgradeToAndCall] function.
Sourcepub fn validatorExits(
&self,
validator: Address,
) -> SolCallBuilder<&P, validatorExitsCall, N>
pub fn validatorExits( &self, validator: Address, ) -> SolCallBuilder<&P, validatorExitsCall, N>
Creates a new call builder for the [validatorExits] function.
Sourcepub fn validators(
&self,
account: Address,
) -> SolCallBuilder<&P, validatorsCall, N>
pub fn validators( &self, account: Address, ) -> SolCallBuilder<&P, validatorsCall, N>
Creates a new call builder for the [validators] function.
Source§impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Event filters.
impl<P: Provider<N>, N: Network> StakeTableInstance<P, N>
Event filters.
Sourcepub fn event_filter<E: SolEvent>(&self) -> Event<&P, E, N>
pub fn event_filter<E: SolEvent>(&self) -> Event<&P, E, N>
Creates a new event filter using this contract instance’s provider and address.
Note that the type can be any event, not just those defined in this contract. Prefer using the other methods for building type-safe event filters.
Sourcepub fn ConsensusKeysUpdated_filter(&self) -> Event<&P, ConsensusKeysUpdated, N>
pub fn ConsensusKeysUpdated_filter(&self) -> Event<&P, ConsensusKeysUpdated, N>
Creates a new event filter for the ConsensusKeysUpdated event.
Sourcepub fn Delegated_filter(&self) -> Event<&P, Delegated, N>
pub fn Delegated_filter(&self) -> Event<&P, Delegated, N>
Creates a new event filter for the Delegated event.
Sourcepub fn Initialized_filter(&self) -> Event<&P, Initialized, N>
pub fn Initialized_filter(&self) -> Event<&P, Initialized, N>
Creates a new event filter for the Initialized event.
Sourcepub fn OwnershipTransferred_filter(&self) -> Event<&P, OwnershipTransferred, N>
pub fn OwnershipTransferred_filter(&self) -> Event<&P, OwnershipTransferred, N>
Creates a new event filter for the OwnershipTransferred event.
Sourcepub fn Undelegated_filter(&self) -> Event<&P, Undelegated, N>
pub fn Undelegated_filter(&self) -> Event<&P, Undelegated, N>
Creates a new event filter for the Undelegated event.
Sourcepub fn Upgraded_filter(&self) -> Event<&P, Upgraded, N>
pub fn Upgraded_filter(&self) -> Event<&P, Upgraded, N>
Creates a new event filter for the Upgraded event.
Sourcepub fn ValidatorExit_filter(&self) -> Event<&P, ValidatorExit, N>
pub fn ValidatorExit_filter(&self) -> Event<&P, ValidatorExit, N>
Creates a new event filter for the ValidatorExit event.
Sourcepub fn ValidatorRegistered_filter(&self) -> Event<&P, ValidatorRegistered, N>
pub fn ValidatorRegistered_filter(&self) -> Event<&P, ValidatorRegistered, N>
Creates a new event filter for the ValidatorRegistered event.
Sourcepub fn Withdrawal_filter(&self) -> Event<&P, Withdrawal, N>
pub fn Withdrawal_filter(&self) -> Event<&P, Withdrawal, N>
Creates a new event filter for the Withdrawal event.
Trait Implementations§
Source§impl<P: Clone, N: Clone> Clone for StakeTableInstance<P, N>
impl<P: Clone, N: Clone> Clone for StakeTableInstance<P, N>
Source§fn clone(&self) -> StakeTableInstance<P, N>
fn clone(&self) -> StakeTableInstance<P, N>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl<P, N> Freeze for StakeTableInstance<P, N>where
P: Freeze,
impl<P, N> RefUnwindSafe for StakeTableInstance<P, N>where
P: RefUnwindSafe,
N: RefUnwindSafe,
impl<P, N> Send for StakeTableInstance<P, N>
impl<P, N> Sync for StakeTableInstance<P, N>
impl<P, N> Unpin for StakeTableInstance<P, N>
impl<P, N> UnwindSafe for StakeTableInstance<P, N>where
P: UnwindSafe,
N: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§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
§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.§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.§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.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§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 more§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 more§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 more§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 more§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 more§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 more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§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.§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.§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.§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.