pub struct ChainSpec<H: BlockHeader = Header> {
pub chain: Chain,
pub genesis: Genesis,
pub genesis_header: SealedHeader<H>,
pub paris_block_and_final_difficulty: Option<(u64, U256)>,
pub hardforks: ChainHardforks,
pub deposit_contract: Option<DepositContract>,
pub base_fee_params: BaseFeeParamsKind,
pub prune_delete_limit: usize,
pub blob_params: BlobScheduleBlobParams,
}
Expand description
An Ethereum chain specification.
A chain specification describes:
- Meta-information about the chain (the chain ID)
- The genesis block of the chain ([
Genesis
]) - What hardforks are activated, and under which conditions
Fields§
§chain: Chain
The chain ID
genesis: Genesis
The genesis block.
genesis_header: SealedHeader<H>
The header corresponding to the genesis block.
paris_block_and_final_difficulty: Option<(u64, U256)>
The block at which EthereumHardfork::Paris
was activated and the final difficulty at
this block.
hardforks: ChainHardforks
The active hard forks and their activation conditions
deposit_contract: Option<DepositContract>
The deposit contract deployed for PoS
base_fee_params: BaseFeeParamsKind
The parameters that configure how a block’s base fee is computed
prune_delete_limit: usize
The delete limit for pruner, per run.
blob_params: BlobScheduleBlobParams
The settings passed for blob configurations for specific hardforks.
Implementations§
Source§impl ChainSpec
impl ChainSpec
Sourcepub fn from_genesis(genesis: Genesis) -> Self
pub fn from_genesis(genesis: Genesis) -> Self
Converts the given [Genesis
] into a ChainSpec
.
Sourcepub fn builder() -> ChainSpecBuilder
pub fn builder() -> ChainSpecBuilder
Build a chainspec using ChainSpecBuilder
Source§impl<H: BlockHeader> ChainSpec<H>
impl<H: BlockHeader> ChainSpec<H>
Sourcepub const fn is_ethereum(&self) -> bool
pub const fn is_ethereum(&self) -> bool
Returns true
if this chain contains Ethereum configuration.
Sourcepub fn is_optimism_mainnet(&self) -> bool
pub fn is_optimism_mainnet(&self) -> bool
Returns true
if this chain is Optimism mainnet.
Sourcepub fn paris_block(&self) -> Option<u64>
pub fn paris_block(&self) -> Option<u64>
Returns the known paris block, if it exists.
Sourcepub const fn genesis(&self) -> &Genesis
pub const fn genesis(&self) -> &Genesis
Get the genesis block specification.
To get the header for the genesis block, use Self::genesis_header
instead.
Sourcepub fn genesis_header(&self) -> &H
pub fn genesis_header(&self) -> &H
Get the header for the genesis block.
Sourcepub fn sealed_genesis_header(&self) -> SealedHeader<H>
pub fn sealed_genesis_header(&self) -> SealedHeader<H>
Get the sealed header for the genesis block.
Sourcepub fn initial_base_fee(&self) -> Option<u64>
pub fn initial_base_fee(&self) -> Option<u64>
Get the initial base fee of the genesis block.
Sourcepub fn base_fee_params_at_timestamp(&self, timestamp: u64) -> BaseFeeParams
pub fn base_fee_params_at_timestamp(&self, timestamp: u64) -> BaseFeeParams
Get the BaseFeeParams
for the chain at the given timestamp.
Sourcepub fn genesis_hash(&self) -> B256
pub fn genesis_hash(&self) -> B256
Get the hash of the genesis block.
Sourcepub const fn genesis_timestamp(&self) -> u64
pub const fn genesis_timestamp(&self) -> u64
Get the timestamp of the genesis block.
Sourcepub fn get_final_paris_total_difficulty(&self) -> Option<U256>
pub fn get_final_paris_total_difficulty(&self) -> Option<U256>
Returns the final total difficulty if the Paris hardfork is known.
Sourcepub fn hardfork_fork_filter<HF: Hardfork + Clone>(
&self,
fork: HF,
) -> Option<ForkFilter>
pub fn hardfork_fork_filter<HF: Hardfork + Clone>( &self, fork: HF, ) -> Option<ForkFilter>
Get the fork filter for the given hardfork
Sourcepub fn display_hardforks(&self) -> DisplayHardforks
pub fn display_hardforks(&self) -> DisplayHardforks
Returns the hardfork display helper.
Sourcepub fn hardfork_fork_id<HF: Hardfork + Clone>(&self, fork: HF) -> Option<ForkId>
pub fn hardfork_fork_id<HF: Hardfork + Clone>(&self, fork: HF) -> Option<ForkId>
Get the fork id for the given hardfork.
Sourcepub fn shanghai_fork_id(&self) -> Option<ForkId>
pub fn shanghai_fork_id(&self) -> Option<ForkId>
Convenience method to get the fork id for EthereumHardfork::Shanghai
from a given
chainspec.
Sourcepub fn cancun_fork_id(&self) -> Option<ForkId>
pub fn cancun_fork_id(&self) -> Option<ForkId>
Convenience method to get the fork id for EthereumHardfork::Cancun
from a given
chainspec.
Sourcepub fn latest_fork_id(&self) -> ForkId
pub fn latest_fork_id(&self) -> ForkId
Convenience method to get the latest fork id from the chainspec. Panics if chainspec has no hardforks.
Sourcepub fn fork_filter(&self, head: Head) -> ForkFilter
pub fn fork_filter(&self, head: Head) -> ForkFilter
Creates a ForkFilter
for the block described by Head.
Sourcepub fn bootnodes(&self) -> Option<Vec<NodeRecord>>
pub fn bootnodes(&self) -> Option<Vec<NodeRecord>>
Returns the known bootnode records for the given chain.
Sourcepub fn map_header<NewH: BlockHeader>(
self,
f: impl FnOnce(H) -> NewH,
) -> ChainSpec<NewH>
pub fn map_header<NewH: BlockHeader>( self, f: impl FnOnce(H) -> NewH, ) -> ChainSpec<NewH>
Convert header to another type.
Methods from Deref<Target = ChainHardforks>§
pub fn fork<H>(&self, fork: H) -> ForkConditionwhere
H: Hardfork,
pub fn fork<H>(&self, fork: H) -> ForkConditionwhere
H: Hardfork,
Retrieves ForkCondition
from fork
. If fork
is not present, returns
ForkCondition::Never
.
pub fn get<H>(&self, fork: H) -> Option<ForkCondition>where
H: Hardfork,
pub fn get<H>(&self, fork: H) -> Option<ForkCondition>where
H: Hardfork,
Retrieves ForkCondition
from fork
if it exists, otherwise None
.
pub fn fork_block<H>(&self, fork: H) -> Option<u64>where
H: Hardfork,
pub fn fork_block<H>(&self, fork: H) -> Option<u64>where
H: Hardfork,
Retrieves the fork block number or timestamp from fork
if it exists, otherwise None
.
pub fn forks_iter(
&self,
) -> impl Iterator<Item = (&(dyn Hardfork + 'static), ForkCondition)>
pub fn forks_iter( &self, ) -> impl Iterator<Item = (&(dyn Hardfork + 'static), ForkCondition)>
Get an iterator of all hardforks with their respective activation conditions.
pub fn last(&self) -> Option<(Box<dyn Hardfork>, ForkCondition)>
pub fn last(&self) -> Option<(Box<dyn Hardfork>, ForkCondition)>
Get last hardfork from the list.
pub fn is_fork_active_at_timestamp<H>(&self, fork: H, timestamp: u64) -> boolwhere
H: Hardfork,
pub fn is_fork_active_at_timestamp<H>(&self, fork: H, timestamp: u64) -> boolwhere
H: Hardfork,
Convenience method to check if a fork is active at a given timestamp.
pub fn is_fork_active_at_block<H>(&self, fork: H, block_number: u64) -> boolwhere
H: Hardfork,
pub fn is_fork_active_at_block<H>(&self, fork: H, block_number: u64) -> boolwhere
H: Hardfork,
Convenience method to check if a fork is active at a given block number.
Trait Implementations§
Source§impl<H: BlockHeader> EthChainSpec for ChainSpec<H>
impl<H: BlockHeader> EthChainSpec for ChainSpec<H>
Source§fn base_fee_params_at_timestamp(&self, timestamp: u64) -> BaseFeeParams
fn base_fee_params_at_timestamp(&self, timestamp: u64) -> BaseFeeParams
BaseFeeParams
for the chain at the given timestamp.Source§fn blob_params_at_timestamp(&self, timestamp: u64) -> Option<BlobParams>
fn blob_params_at_timestamp(&self, timestamp: u64) -> Option<BlobParams>
BlobParams
] for the given timestampSource§fn deposit_contract(&self) -> Option<&DepositContract>
fn deposit_contract(&self) -> Option<&DepositContract>
Source§fn genesis_hash(&self) -> B256
fn genesis_hash(&self) -> B256
Source§fn prune_delete_limit(&self) -> usize
fn prune_delete_limit(&self) -> usize
Source§fn display_hardforks(&self) -> Box<dyn Display>
fn display_hardforks(&self) -> Box<dyn Display>
Source§fn genesis_header(&self) -> &Self::Header
fn genesis_header(&self) -> &Self::Header
Source§fn is_optimism(&self) -> bool
fn is_optimism(&self) -> bool
true
if this chain contains Optimism configuration.Source§fn final_paris_total_difficulty(&self) -> Option<U256>
fn final_paris_total_difficulty(&self) -> Option<U256>
Source§fn is_ethereum(&self) -> bool
fn is_ethereum(&self) -> bool
true
if this chain contains Ethereum configuration.Source§impl<H: BlockHeader> EthExecutorSpec for ChainSpec<H>
impl<H: BlockHeader> EthExecutorSpec for ChainSpec<H>
Source§fn deposit_contract_address(&self) -> Option<Address>
fn deposit_contract_address(&self) -> Option<Address>
Source§impl<H: BlockHeader> EthereumHardforks for ChainSpec<H>
impl<H: BlockHeader> EthereumHardforks for ChainSpec<H>
Source§fn ethereum_fork_activation(&self, fork: EthereumHardfork) -> ForkCondition
fn ethereum_fork_activation(&self, fork: EthereumHardfork) -> ForkCondition
ForkCondition
by an EthereumHardfork
. If fork
is not present, returns
ForkCondition::Never
.§fn is_ethereum_fork_active_at_timestamp(
&self,
fork: EthereumHardfork,
timestamp: u64,
) -> bool
fn is_ethereum_fork_active_at_timestamp( &self, fork: EthereumHardfork, timestamp: u64, ) -> bool
EthereumHardfork
is active at a given timestamp.§fn is_ethereum_fork_active_at_block(
&self,
fork: EthereumHardfork,
block_number: u64,
) -> bool
fn is_ethereum_fork_active_at_block( &self, fork: EthereumHardfork, block_number: u64, ) -> bool
EthereumHardfork
is active at a given block number.§fn is_homestead_active_at_block(&self, block_number: u64) -> bool
fn is_homestead_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Homestead
is active at a given block
number.§fn is_tangerine_whistle_active_at_block(&self, block_number: u64) -> bool
fn is_tangerine_whistle_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Tangerine
is active at a given
block number.§fn is_spurious_dragon_active_at_block(&self, block_number: u64) -> bool
fn is_spurious_dragon_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::SpuriousDragon
is active at a given
block number.§fn is_byzantium_active_at_block(&self, block_number: u64) -> bool
fn is_byzantium_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Byzantium
is active at a given block
number.§fn is_constantinople_active_at_block(&self, block_number: u64) -> bool
fn is_constantinople_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Constantinople
is active at a given
block number.§fn is_petersburg_active_at_block(&self, block_number: u64) -> bool
fn is_petersburg_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Petersburg
is active at a given block
number.§fn is_istanbul_active_at_block(&self, block_number: u64) -> bool
fn is_istanbul_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Istanbul
is active at a given block
number.§fn is_berlin_active_at_block(&self, block_number: u64) -> bool
fn is_berlin_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Berlin
is active at a given block
number.§fn is_london_active_at_block(&self, block_number: u64) -> bool
fn is_london_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::London
is active at a given block
number.§fn is_paris_active_at_block(&self, block_number: u64) -> bool
fn is_paris_active_at_block(&self, block_number: u64) -> bool
EthereumHardfork::Paris
is active at a given block
number.§fn is_shanghai_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_shanghai_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Shanghai
is active at a given
timestamp.§fn is_cancun_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_cancun_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Cancun
is active at a given timestamp.§fn is_prague_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_prague_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Prague
is active at a given timestamp.§fn is_osaka_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_osaka_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Osaka
is active at a given timestamp.§fn is_amsterdam_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_amsterdam_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Amsterdam
is active at a given
timestamp.§fn is_bpo1_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_bpo1_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Bpo1
is active at a given timestamp.§fn is_bpo2_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_bpo2_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Bpo2
is active at a given timestamp.§fn is_bpo3_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_bpo3_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Bpo3
is active at a given timestamp.§fn is_bpo4_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_bpo4_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Bpo4
is active at a given timestamp.§fn is_bpo5_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_bpo5_active_at_timestamp(&self, timestamp: u64) -> bool
EthereumHardfork::Bpo5
is active at a given timestamp.Source§impl<H: BlockHeader> Hardforks for ChainSpec<H>
impl<H: BlockHeader> Hardforks for ChainSpec<H>
Source§fn fork<HF: Hardfork>(&self, fork: HF) -> ForkCondition
fn fork<HF: Hardfork>(&self, fork: HF) -> ForkCondition
Source§fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
Source§fn fork_filter(&self, head: Head) -> ForkFilter
fn fork_filter(&self, head: Head) -> ForkFilter
ForkFilter
for the block described by Head.§fn is_fork_active_at_timestamp<H>(&self, fork: H, timestamp: u64) -> boolwhere
H: Hardfork,
fn is_fork_active_at_timestamp<H>(&self, fork: H, timestamp: u64) -> boolwhere
H: Hardfork,
§fn is_fork_active_at_block<H>(&self, fork: H, block_number: u64) -> boolwhere
H: Hardfork,
fn is_fork_active_at_block<H>(&self, fork: H, block_number: u64) -> boolwhere
H: Hardfork,
impl<H: Eq + BlockHeader> Eq for ChainSpec<H>
impl<H: BlockHeader> StructuralPartialEq for ChainSpec<H>
Auto Trait Implementations§
impl<H = Header> !Freeze for ChainSpec<H>
impl<H = Header> !RefUnwindSafe for ChainSpec<H>
impl<H> Send for ChainSpec<H>
impl<H> Sync for ChainSpec<H>
impl<H> Unpin for ChainSpec<H>
impl<H = Header> !UnwindSafe for ChainSpec<H>
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§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<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv
] from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv
] from a transaction, its sender, and encoded transaction bytes.§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> 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.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.