pub struct EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
EngineT: EngineTypes,{ /* private fields */ }
rpc
only.Expand description
The Engine API implementation that grants the Consensus layer access to data and functions in the Execution layer that are crucial for the consensus process.
This type is generic over EngineTypes
and intended to be used as the entrypoint for engine
API processing. It can be reused by other non L1 engine APIs that deviate from the L1 spec but
are still follow the engine API model.
§Implementers
Implementing support for an engine API jsonrpsee RPC handler is done by defining the engine API
server trait and implementing it on a type that can wrap this EngineApi
type.
See also EngineApiServer
implementation for this type which is the L1 implementation.
Implementations§
Source§impl<Provider, EngineT, Pool, Validator, ChainSpec> EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static,
EngineT: EngineTypes,
Pool: TransactionPool + 'static,
Validator: EngineValidator<EngineT>,
ChainSpec: EthereumHardforks + Send + Sync + 'static,
impl<Provider, EngineT, Pool, Validator, ChainSpec> EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static,
EngineT: EngineTypes,
Pool: TransactionPool + 'static,
Validator: EngineValidator<EngineT>,
ChainSpec: EthereumHardforks + Send + Sync + 'static,
Sourcepub fn new(
provider: Provider,
chain_spec: Arc<ChainSpec>,
beacon_consensus: BeaconConsensusEngineHandle<EngineT>,
payload_store: PayloadStore<EngineT>,
tx_pool: Pool,
task_spawner: Box<dyn TaskSpawner>,
client: ClientVersionV1,
capabilities: EngineCapabilities,
validator: Validator,
) -> EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
pub fn new( provider: Provider, chain_spec: Arc<ChainSpec>, beacon_consensus: BeaconConsensusEngineHandle<EngineT>, payload_store: PayloadStore<EngineT>, tx_pool: Pool, task_spawner: Box<dyn TaskSpawner>, client: ClientVersionV1, capabilities: EngineCapabilities, validator: Validator, ) -> EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
Create new instance of EngineApi
.
Sourcepub fn get_client_version_v1(
&self,
_client: ClientVersionV1,
) -> Result<Vec<ClientVersionV1>, EngineApiError>
pub fn get_client_version_v1( &self, _client: ClientVersionV1, ) -> Result<Vec<ClientVersionV1>, EngineApiError>
Fetches the client version.
Sourcepub async fn new_payload_v1(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, EngineApiError>
pub async fn new_payload_v1( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, EngineApiError>
See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_newpayloadv1
Caution: This should not accept the withdrawals
field
Sourcepub async fn new_payload_v2(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, EngineApiError>
pub async fn new_payload_v2( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, EngineApiError>
Sourcepub async fn new_payload_v2_metered(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, EngineApiError>
pub async fn new_payload_v2_metered( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, EngineApiError>
Metered version of new_payload_v2
.
Sourcepub async fn new_payload_v3(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, EngineApiError>
pub async fn new_payload_v3( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, EngineApiError>
Sourcepub async fn new_payload_v3_metered(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, ErrorObject<'static>>
pub async fn new_payload_v3_metered( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, ErrorObject<'static>>
Metrics version of new_payload_v3
Sourcepub async fn new_payload_v4(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, EngineApiError>
pub async fn new_payload_v4( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, EngineApiError>
Sourcepub async fn new_payload_v4_metered(
&self,
payload: <EngineT as EngineTypes>::ExecutionData,
) -> Result<PayloadStatus, ErrorObject<'static>>
pub async fn new_payload_v4_metered( &self, payload: <EngineT as EngineTypes>::ExecutionData, ) -> Result<PayloadStatus, ErrorObject<'static>>
Metrics version of new_payload_v4
Sourcepub async fn fork_choice_updated_v1(
&self,
state: ForkchoiceState,
payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Result<ForkchoiceUpdated, EngineApiError>
pub async fn fork_choice_updated_v1( &self, state: ForkchoiceState, payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Result<ForkchoiceUpdated, EngineApiError>
Sends a message to the beacon consensus engine to update the fork choice without withdrawals.
Caution: This should not accept the withdrawals
field
Sourcepub async fn fork_choice_updated_v2(
&self,
state: ForkchoiceState,
payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Result<ForkchoiceUpdated, EngineApiError>
pub async fn fork_choice_updated_v2( &self, state: ForkchoiceState, payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Result<ForkchoiceUpdated, EngineApiError>
Sends a message to the beacon consensus engine to update the fork choice with withdrawals, but only after shanghai.
Sourcepub async fn fork_choice_updated_v2_metered(
&self,
state: ForkchoiceState,
payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Result<ForkchoiceUpdated, EngineApiError>
pub async fn fork_choice_updated_v2_metered( &self, state: ForkchoiceState, payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Result<ForkchoiceUpdated, EngineApiError>
Metrics version of fork_choice_updated_v2
Sourcepub async fn fork_choice_updated_v3(
&self,
state: ForkchoiceState,
payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Result<ForkchoiceUpdated, EngineApiError>
pub async fn fork_choice_updated_v3( &self, state: ForkchoiceState, payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Result<ForkchoiceUpdated, EngineApiError>
Sends a message to the beacon consensus engine to update the fork choice with withdrawals, but only after cancun.
See also https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3
Sourcepub async fn fork_choice_updated_v3_metered(
&self,
state: ForkchoiceState,
payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Result<ForkchoiceUpdated, EngineApiError>
pub async fn fork_choice_updated_v3_metered( &self, state: ForkchoiceState, payload_attrs: Option<<EngineT as PayloadTypes>::PayloadAttributes>, ) -> Result<ForkchoiceUpdated, EngineApiError>
Metrics version of fork_choice_updated_v3
Sourcepub async fn get_payload_v1(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, EngineApiError>
pub async fn get_payload_v1( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, EngineApiError>
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Caution: This should not return the withdrawals
field
Note:
Provider software MAY stop the corresponding build process after serving this call.
Sourcepub async fn get_payload_v1_metered(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, EngineApiError>
pub async fn get_payload_v1_metered( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, EngineApiError>
Metrics version of get_payload_v1
Sourcepub async fn get_payload_v2(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, EngineApiError>
pub async fn get_payload_v2( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, EngineApiError>
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Note:
Provider software MAY stop the corresponding build process after serving this call.
Sourcepub async fn get_payload_v2_metered(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, EngineApiError>
pub async fn get_payload_v2_metered( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, EngineApiError>
Metrics version of get_payload_v2
Sourcepub async fn get_payload_v3(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, EngineApiError>
pub async fn get_payload_v3( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, EngineApiError>
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Note:
Provider software MAY stop the corresponding build process after serving this call.
Sourcepub async fn get_payload_v3_metered(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, EngineApiError>
pub async fn get_payload_v3_metered( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, EngineApiError>
Metrics version of get_payload_v3
Sourcepub async fn get_payload_v4(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, EngineApiError>
pub async fn get_payload_v4( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, EngineApiError>
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Note:
Provider software MAY stop the corresponding build process after serving this call.
Sourcepub async fn get_payload_v4_metered(
&self,
payload_id: PayloadId,
) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, EngineApiError>
pub async fn get_payload_v4_metered( &self, payload_id: PayloadId, ) -> Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, EngineApiError>
Metrics version of get_payload_v4
Sourcepub async fn get_payload_bodies_by_range_with<F, R>(
&self,
start: u64,
count: u64,
f: F,
) -> Result<Vec<Option<R>>, EngineApiError>
pub async fn get_payload_bodies_by_range_with<F, R>( &self, start: u64, count: u64, f: F, ) -> Result<Vec<Option<R>>, EngineApiError>
Fetches all the blocks for the provided range starting at start
, containing count
blocks and returns the mapped payload bodies.
Sourcepub async fn get_payload_bodies_by_range_v1(
&self,
start: u64,
count: u64,
) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
pub async fn get_payload_bodies_by_range_v1( &self, start: u64, count: u64, ) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
Returns the execution payload bodies by the range starting at start
, containing count
blocks.
WARNING: This method is associated with the BeaconBlocksByRange
message in the consensus
layer p2p specification, meaning the input should be treated as untrusted or potentially
adversarial.
Implementers should take care when acting on the input to this method, specifically ensuring that the range is limited properly, and that the range boundaries are computed correctly and without panics.
Sourcepub async fn get_payload_bodies_by_range_v1_metered(
&self,
start: u64,
count: u64,
) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
pub async fn get_payload_bodies_by_range_v1_metered( &self, start: u64, count: u64, ) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
Metrics version of get_payload_bodies_by_range_v1
Sourcepub async fn get_payload_bodies_by_hash_with<F, R>(
&self,
hashes: Vec<FixedBytes<32>>,
f: F,
) -> Result<Vec<Option<R>>, EngineApiError>
pub async fn get_payload_bodies_by_hash_with<F, R>( &self, hashes: Vec<FixedBytes<32>>, f: F, ) -> Result<Vec<Option<R>>, EngineApiError>
Called to retrieve execution payload bodies by hashes.
Sourcepub async fn get_payload_bodies_by_hash_v1(
&self,
hashes: Vec<FixedBytes<32>>,
) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
pub async fn get_payload_bodies_by_hash_v1( &self, hashes: Vec<FixedBytes<32>>, ) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
Called to retrieve execution payload bodies by hashes.
Sourcepub async fn get_payload_bodies_by_hash_v1_metered(
&self,
hashes: Vec<FixedBytes<32>>,
) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
pub async fn get_payload_bodies_by_hash_v1_metered( &self, hashes: Vec<FixedBytes<32>>, ) -> Result<Vec<Option<ExecutionPayloadBodyV1>>, EngineApiError>
Metrics version of get_payload_bodies_by_hash_v1
Sourcepub fn exchange_transition_configuration(
&self,
config: TransitionConfiguration,
) -> Result<TransitionConfiguration, EngineApiError>
pub fn exchange_transition_configuration( &self, config: TransitionConfiguration, ) -> Result<TransitionConfiguration, EngineApiError>
Called to verify network configuration parameters and ensure that Consensus and Execution layers are using the latest configuration.
Sourcepub fn capabilities(&self) -> &EngineCapabilities
pub fn capabilities(&self) -> &EngineCapabilities
Returns reference to supported capabilities.
Trait Implementations§
Source§impl<Provider, EngineT, Pool, Validator, ChainSpec> Debug for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
EngineT: EngineTypes,
impl<Provider, EngineT, Pool, Validator, ChainSpec> Debug for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
EngineT: EngineTypes,
Source§impl<Provider, EngineT, Pool, Validator, ChainSpec> EngineApiServer<EngineT> for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static,
EngineT: EngineTypes<ExecutionData = ExecutionData>,
Pool: TransactionPool + 'static,
Validator: EngineValidator<EngineT>,
ChainSpec: EthereumHardforks + Send + Sync + 'static,
impl<Provider, EngineT, Pool, Validator, ChainSpec> EngineApiServer<EngineT> for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
Provider: HeaderProvider + BlockReader + StateProviderFactory + 'static,
EngineT: EngineTypes<ExecutionData = ExecutionData>,
Pool: TransactionPool + 'static,
Validator: EngineValidator<EngineT>,
ChainSpec: EthereumHardforks + Send + Sync + 'static,
Source§fn new_payload_v1<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV1,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn new_payload_v1<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV1,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_newPayloadV1
See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_newpayloadv1
Caution: This should not accept the withdrawals
field
Source§fn new_payload_v2<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadInputV2,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn new_payload_v2<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadInputV2,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_newPayloadV2
See also https://github.com/ethereum/execution-apis/blob/584905270d8ad665718058060267061ecfd79ca5/src/engine/shanghai.md#engine_newpayloadv2
Source§fn new_payload_v3<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<FixedBytes<32>>,
parent_beacon_block_root: FixedBytes<32>,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn new_payload_v3<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<FixedBytes<32>>,
parent_beacon_block_root: FixedBytes<32>,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_newPayloadV3
See also https://github.com/ethereum/execution-apis/blob/fe8e13c288c592ec154ce25c534e26cb7ce0530d/src/engine/cancun.md#engine_newpayloadv3
Source§fn new_payload_v4<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<FixedBytes<32>>,
parent_beacon_block_root: FixedBytes<32>,
execution_requests: Requests,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn new_payload_v4<'life0, 'async_trait>(
&'life0 self,
payload: ExecutionPayloadV3,
versioned_hashes: Vec<FixedBytes<32>>,
parent_beacon_block_root: FixedBytes<32>,
execution_requests: Requests,
) -> Pin<Box<dyn Future<Output = Result<PayloadStatus, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_newPayloadV4
See also https://github.com/ethereum/execution-apis/blob/03911ffc053b8b806123f1fc237184b0092a485a/src/engine/prague.md#engine_newpayloadv4
Source§fn fork_choice_updated_v1<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn fork_choice_updated_v1<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_forkchoiceUpdatedV1
See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_forkchoiceupdatedv1
Caution: This should not accept the withdrawals
field
Source§fn fork_choice_updated_v2<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn fork_choice_updated_v2<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_forkchoiceUpdatedV2
See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/shanghai.md#engine_forkchoiceupdatedv2
Source§fn fork_choice_updated_v3<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn fork_choice_updated_v3<'life0, 'async_trait>(
&'life0 self,
fork_choice_state: ForkchoiceState,
payload_attributes: Option<<EngineT as PayloadTypes>::PayloadAttributes>,
) -> Pin<Box<dyn Future<Output = Result<ForkchoiceUpdated, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_forkchoiceUpdatedV2
See also https://github.com/ethereum/execution-apis/blob/main/src/engine/cancun.md#engine_forkchoiceupdatedv3
Source§fn get_payload_v1<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_v1<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV1, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadV1
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Caution: This should not return the withdrawals
field
Note:
Provider software MAY stop the corresponding build process after serving this call.
Source§fn get_payload_v2<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_v2<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV2, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadV2
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Note:
Provider software MAY stop the corresponding build process after serving this call.
Source§fn get_payload_v3<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_v3<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV3, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadV3
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
Note:
Provider software MAY stop the corresponding build process after serving this call.
Source§fn get_payload_v4<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_v4<'life0, 'async_trait>(
&'life0 self,
payload_id: PayloadId,
) -> Pin<Box<dyn Future<Output = Result<<EngineT as EngineTypes>::ExecutionPayloadEnvelopeV4, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadV4
Returns the most recent version of the payload that is available in the corresponding payload build process at the time of receiving this call.
See also https://github.com/ethereum/execution-apis/blob/main/src/engine/prague.md#engine_getpayloadv4
Note:
Provider software MAY stop the corresponding build process after serving this call.
Source§fn get_payload_bodies_by_hash_v1<'life0, 'async_trait>(
&'life0 self,
block_hashes: Vec<FixedBytes<32>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_bodies_by_hash_v1<'life0, 'async_trait>(
&'life0 self,
block_hashes: Vec<FixedBytes<32>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadBodiesByHashV1
See also https://github.com/ethereum/execution-apis/blob/6452a6b194d7db269bf1dbd087a267251d3cc7f8/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1
Source§fn get_payload_bodies_by_range_v1<'life0, 'async_trait>(
&'life0 self,
start: Uint<64, 1>,
count: Uint<64, 1>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_payload_bodies_by_range_v1<'life0, 'async_trait>(
&'life0 self,
start: Uint<64, 1>,
count: Uint<64, 1>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<ExecutionPayloadBodyV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getPayloadBodiesByRangeV1
Returns the execution payload bodies by the range starting at start
, containing count
blocks.
WARNING: This method is associated with the BeaconBlocksByRange message in the consensus layer p2p specification, meaning the input should be treated as untrusted or potentially adversarial.
Implementers should take care when acting on the input to this method, specifically ensuring that the range is limited properly, and that the range boundaries are computed correctly and without panics.
Note: If a block is pre shanghai, withdrawals
field will be null
.
Source§fn exchange_transition_configuration<'life0, 'async_trait>(
&'life0 self,
config: TransitionConfiguration,
) -> Pin<Box<dyn Future<Output = Result<TransitionConfiguration, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn exchange_transition_configuration<'life0, 'async_trait>(
&'life0 self,
config: TransitionConfiguration,
) -> Pin<Box<dyn Future<Output = Result<TransitionConfiguration, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_exchangeTransitionConfigurationV1
See also https://github.com/ethereum/execution-apis/blob/3d627c95a4d3510a8187dd02e0250ecb4331d27e/src/engine/paris.md#engine_exchangeTransitionConfigurationV1
Source§fn get_client_version_v1<'life0, 'async_trait>(
&'life0 self,
client: ClientVersionV1,
) -> Pin<Box<dyn Future<Output = Result<Vec<ClientVersionV1>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_client_version_v1<'life0, 'async_trait>(
&'life0 self,
client: ClientVersionV1,
) -> Pin<Box<dyn Future<Output = Result<Vec<ClientVersionV1>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_getClientVersionV1
Source§fn exchange_capabilities<'life0, 'async_trait>(
&'life0 self,
_capabilities: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn exchange_capabilities<'life0, 'async_trait>(
&'life0 self,
_capabilities: Vec<String>,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Handler for engine_exchangeCapabilitiesV1
See also https://github.com/ethereum/execution-apis/blob/6452a6b194d7db269bf1dbd087a267251d3cc7f8/src/engine/common.md#capabilities
Source§fn get_blobs_v1<'life0, 'async_trait>(
&'life0 self,
versioned_hashes: Vec<FixedBytes<32>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<BlobAndProofV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
fn get_blobs_v1<'life0, 'async_trait>(
&'life0 self,
versioned_hashes: Vec<FixedBytes<32>>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Option<BlobAndProofV1>>, ErrorObject<'static>>> + Send + 'async_trait>>where
'life0: 'async_trait,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: 'async_trait,
Source§impl<Provider, EngineT, Pool, Validator, ChainSpec> IntoEngineApiRpcModule for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
EngineT: EngineTypes,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: EngineApiServer<EngineT>,
impl<Provider, EngineT, Pool, Validator, ChainSpec> IntoEngineApiRpcModule for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>where
EngineT: EngineTypes,
EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>: EngineApiServer<EngineT>,
Source§fn into_rpc_module(self) -> RpcModule<()>
fn into_rpc_module(self) -> RpcModule<()>
RpcModule
]Auto Trait Implementations§
impl<Provider, EngineT, Pool, Validator, ChainSpec> Freeze for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
impl<Provider, EngineT, Pool, Validator, ChainSpec> !RefUnwindSafe for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
impl<Provider, EngineT, Pool, Validator, ChainSpec> Send for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
impl<Provider, EngineT, Pool, Validator, ChainSpec> Sync for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
impl<Provider, EngineT, Pool, Validator, ChainSpec> Unpin for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
impl<Provider, EngineT, Pool, Validator, ChainSpec> !UnwindSafe for EngineApi<Provider, EngineT, Pool, Validator, ChainSpec>
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
§impl<T> Conv for T
impl<T> Conv 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<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<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> 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 more§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling [Attribute
] value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
[Quirk
] value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the [Condition
] value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);
§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.§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>
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§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>,
Source§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> MaybeSend for Twhere
T: Send,
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: 8 bytes