pub struct OpChainSpec {
pub inner: ChainSpec,
}
Expand description
OP stack chain spec type.
Fields§
§inner: ChainSpec
[ChainSpec
].
Implementations§
Source§impl OpChainSpec
impl OpChainSpec
pub const fn new(inner: ChainSpec) -> OpChainSpec
Source§impl OpChainSpec
impl OpChainSpec
Sourcepub fn decode_holocene_base_fee(
&self,
parent: &Header,
timestamp: u64,
) -> Result<u64, EIP1559ParamError>
pub fn decode_holocene_base_fee( &self, parent: &Header, timestamp: u64, ) -> Result<u64, EIP1559ParamError>
Extracts the Holocene 1599 parameters from the encoded extra data from the parent header.
Caution: Caller must ensure that holocene is active in the parent header.
See also Base fee computation
Sourcepub fn next_block_base_fee(
&self,
parent: &Header,
timestamp: u64,
) -> Result<U256, EIP1559ParamError>
pub fn next_block_base_fee( &self, parent: &Header, timestamp: u64, ) -> Result<U256, EIP1559ParamError>
Read from parent to determine the base fee for the next block
See also Base fee computation
Methods from Deref<Target = ChainSpec>§
pub fn chain(&self) -> Chain
pub fn chain(&self) -> Chain
Get information about the chain itself
pub fn is_ethereum(&self) -> bool
pub fn is_ethereum(&self) -> bool
Returns true
if this chain contains Ethereum configuration.
pub fn is_optimism_mainnet(&self) -> bool
pub fn is_optimism_mainnet(&self) -> bool
Returns true
if this chain is Optimism mainnet.
pub fn paris_block(&self) -> Option<u64>
pub fn paris_block(&self) -> Option<u64>
Returns the known paris block, if it exists.
pub fn genesis(&self) -> &Genesis
pub fn genesis(&self) -> &Genesis
Get the genesis block specification.
To get the header for the genesis block, use [Self::genesis_header
] instead.
pub fn genesis_header(&self) -> &Header
pub fn genesis_header(&self) -> &Header
Get the header for the genesis block.
pub fn sealed_genesis_header(&self) -> SealedHeader
pub fn sealed_genesis_header(&self) -> SealedHeader
Get the sealed header for the genesis block.
pub fn initial_base_fee(&self) -> Option<u64>
pub fn initial_base_fee(&self) -> Option<u64>
Get the initial base fee of the genesis block.
pub 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.
pub fn base_fee_params_at_block(&self, block_number: u64) -> BaseFeeParams
pub fn base_fee_params_at_block(&self, block_number: u64) -> BaseFeeParams
Get the [BaseFeeParams
] for the chain at the given block number
pub fn genesis_hash(&self) -> FixedBytes<32>
pub fn genesis_hash(&self) -> FixedBytes<32>
Get the hash of the genesis block.
pub fn genesis_timestamp(&self) -> u64
pub fn genesis_timestamp(&self) -> u64
Get the timestamp of the genesis block.
pub fn get_final_paris_total_difficulty(&self) -> Option<Uint<256, 4>>
pub fn get_final_paris_total_difficulty(&self) -> Option<Uint<256, 4>>
Returns the final total difficulty if the Paris hardfork is known.
pub fn final_paris_total_difficulty(
&self,
block_number: u64,
) -> Option<Uint<256, 4>>
pub fn final_paris_total_difficulty( &self, block_number: u64, ) -> Option<Uint<256, 4>>
Returns the final total difficulty if the given block number is after the Paris hardfork.
Note: technically this would also be valid for the block before the paris upgrade, but this edge case is omitted here.
pub fn hardfork_fork_filter<H>(&self, fork: H) -> Option<ForkFilter>where
H: Hardfork + Clone,
pub fn hardfork_fork_filter<H>(&self, fork: H) -> Option<ForkFilter>where
H: Hardfork + Clone,
Get the fork filter for the given hardfork
pub fn display_hardforks(&self) -> DisplayHardforks
pub fn display_hardforks(&self) -> DisplayHardforks
Returns the hardfork display helper.
pub fn hardfork_fork_id<H>(&self, fork: H) -> Option<ForkId>where
H: Hardfork + Clone,
pub fn hardfork_fork_id<H>(&self, fork: H) -> Option<ForkId>where
H: Hardfork + Clone,
Get the fork id for the given hardfork.
pub 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.
pub 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.
pub 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.
pub fn fork_filter(&self, head: Head) -> ForkFilter
pub fn fork_filter(&self, head: Head) -> ForkFilter
Creates a [ForkFilter
] for the block described by [Head].
pub fn fork_id(&self, head: &Head) -> ForkId
pub fn fork_id(&self, head: &Head) -> ForkId
Compute the [ForkId
] for the given [Head
] following eip-6122 spec.
Note: In case there are multiple hardforks activated at the same block or timestamp, only the first gets applied.
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 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 Clone for OpChainSpec
impl Clone for OpChainSpec
Source§fn clone(&self) -> OpChainSpec
fn clone(&self) -> OpChainSpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for OpChainSpec
impl Debug for OpChainSpec
Source§impl Deref for OpChainSpec
impl Deref for OpChainSpec
Source§impl EthChainSpec for OpChainSpec
impl EthChainSpec for OpChainSpec
Source§fn base_fee_params_at_block(&self, block_number: u64) -> BaseFeeParams
fn base_fee_params_at_block(&self, block_number: u64) -> BaseFeeParams
BaseFeeParams
] for the chain at the given block.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 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.§fn is_ethereum(&self) -> bool
fn is_ethereum(&self) -> bool
true
if this chain contains Ethereum configuration.Source§impl EthereumHardforks for OpChainSpec
impl EthereumHardforks for OpChainSpec
Source§fn get_final_paris_total_difficulty(&self) -> Option<U256>
fn get_final_paris_total_difficulty(&self) -> Option<U256>
Source§fn final_paris_total_difficulty(&self, block_number: u64) -> Option<U256>
fn final_paris_total_difficulty(&self, block_number: u64) -> Option<U256>
§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_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_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_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_paris_active_at_block(&self, block_number: u64) -> Option<bool>
fn is_paris_active_at_block(&self, block_number: u64) -> Option<bool>
Source§impl From<Genesis> for OpChainSpec
impl From<Genesis> for OpChainSpec
Source§impl From<OpChainSpec> for ChainSpec
impl From<OpChainSpec> for ChainSpec
Source§fn from(value: OpChainSpec) -> Self
fn from(value: OpChainSpec) -> Self
Source§impl Hardforks for OpChainSpec
impl Hardforks for OpChainSpec
Source§fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
fn fork<H: Hardfork>(&self, fork: H) -> ForkCondition
ForkCondition
] from fork
. If fork
is not present, returns
[ForkCondition::Never
].Source§fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
fn forks_iter(&self) -> impl Iterator<Item = (&dyn Hardfork, ForkCondition)>
Source§fn fork_id(&self, head: &Head) -> ForkId
fn fork_id(&self, head: &Head) -> ForkId
ForkId
] for the given [Head
] following eip-6122 specSource§fn latest_fork_id(&self) -> ForkId
fn latest_fork_id(&self) -> ForkId
ForkId
] for the last fork.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,
Source§impl OpHardforks for OpChainSpec
impl OpHardforks for OpChainSpec
§fn is_bedrock_active_at_block(&self, block_number: u64) -> bool
fn is_bedrock_active_at_block(&self, block_number: u64) -> bool
OpHardfork::Bedrock
] is active at a given block
number.§fn is_regolith_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_regolith_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Regolith
is active at given block
timestamp.§fn is_canyon_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_canyon_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Canyon
is active at given block timestamp.§fn is_ecotone_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_ecotone_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Ecotone
is active at given block timestamp.§fn is_fjord_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_fjord_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Fjord
is active at given block timestamp.§fn is_granite_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_granite_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Granite
is active at given block timestamp.§fn is_holocene_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_holocene_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Holocene
is active at given block
timestamp.§fn is_isthmus_active_at_timestamp(&self, timestamp: u64) -> bool
fn is_isthmus_active_at_timestamp(&self, timestamp: u64) -> bool
true
if Isthmus
is active at given block
timestamp.Source§impl PartialEq for OpChainSpec
impl PartialEq for OpChainSpec
impl Eq for OpChainSpec
impl StructuralPartialEq for OpChainSpec
Auto Trait Implementations§
impl !Freeze for OpChainSpec
impl !RefUnwindSafe for OpChainSpec
impl Send for OpChainSpec
impl Sync for OpChainSpec
impl Unpin for OpChainSpec
impl !UnwindSafe for OpChainSpec
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
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<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> 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,
impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSendSync for T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1792 bytes