pub struct TempoPooledTransaction {
inner: EthPooledTransaction<TempoTxEnvelope>,
fee_token_cost: U256,
is_payment: bool,
expiring_nonce_hash: Option<B256>,
nonce_key_slot: OnceLock<Option<U256>>,
expiring_nonce_slot: OnceLock<Option<U256>>,
tx_env: OnceLock<TempoTxEnv>,
key_expiry: OnceLock<Option<u64>>,
resolved_fee_token: OnceLock<Address>,
key_authorization_signer_subject: OnceLock<Option<KeychainSubject>>,
key_authorization_target_subject: OnceLock<Option<KeyAuthorizationTargetSubject>>,
fee_balance_slot: OnceLock<Option<(Address, U256)>>,
}Expand description
Tempo pooled transaction representation.
This is a wrapper around the regular ethereum [EthPooledTransaction], but with tempo specific implementations.
Fields§
§inner: EthPooledTransaction<TempoTxEnvelope>§fee_token_cost: U256Cached cost of the transaction in the fee token.
is_payment: boolCached T5+ payment classification for efficient block building.
expiring_nonce_hash: Option<B256>Precomputed sender-scoped hash used to deduplicate expiring nonce transactions.
nonce_key_slot: OnceLock<Option<U256>>Cached slot of the 2D nonce, if any.
expiring_nonce_slot: OnceLock<Option<U256>>Cached expiring_nonce_seen storage slot for expiring nonce transactions.
tx_env: OnceLock<TempoTxEnv>Cached prepared TempoTxEnv for payload building.
key_expiry: OnceLock<Option<u64>>Keychain key expiry timestamp (set during validation for keychain-signed txs).
Some(expiry) for keychain transactions where expiry < u64::MAX (finite expiry).
None for non-keychain transactions or keys that never expire.
resolved_fee_token: OnceLock<Address>Resolved fee token cached at validation time.
Used by keychain_subject() so pool maintenance matches against the same token
that was validated without requiring state access.
Cached keychain subject for the signer of an inline KeyAuthorization.
Cached target key of an inline KeyAuthorization.
fee_balance_slot: OnceLock<Option<(Address, U256)>>Cached TIP20 balance storage slot for the fee payer.
Stores (fee_token, balance_slot) so the payload builder’s state-aware iterator
can check if the fee payer’s balance was modified without recomputing the keccak.
Implementations§
Source§impl TempoPooledTransaction
impl TempoPooledTransaction
Sourcepub fn new(transaction: Recovered<TempoTxEnvelope>) -> Self
pub fn new(transaction: Recovered<TempoTxEnvelope>) -> Self
Create new instance of Self from the given consensus transactions and the encoded size.
Sourcefn new_with(
transaction: Recovered<TempoTxEnvelope>,
expiring_nonce_hash: Option<B256>,
encoded_length: usize,
) -> Self
fn new_with( transaction: Recovered<TempoTxEnvelope>, expiring_nonce_hash: Option<B256>, encoded_length: usize, ) -> Self
Create a new pooled transaction with optional precomputed transaction metadata.
Raw transaction recovery can compute the signer and expiring nonce hash in one pass for
expiring AA transactions, and it already knows the encoded byte length. This constructor
preserves those values while keeping Self::new as the default path for callers that
already have a recovered transaction.
Sourcepub const fn fee_token_cost(&self) -> U256
pub const fn fee_token_cost(&self) -> U256
Get the cost of the transaction in the fee token.
Sourcepub fn inner(&self) -> &Recovered<TempoTxEnvelope>
pub fn inner(&self) -> &Recovered<TempoTxEnvelope>
Returns a reference to inner TempoTxEnvelope.
Sourcepub fn fee_payer(&self) -> Result<Address, RecoveryError>
pub fn fee_payer(&self) -> Result<Address, RecoveryError>
Resolves the transaction fee payer.
This reuses the cached transaction environment once validation has prepared it, so repeated pool-maintenance checks do not recover the fee payer again.
Sourcepub fn nonce_key(&self) -> Option<U256>
pub fn nonce_key(&self) -> Option<U256>
Returns the nonce key of this transaction if it’s an AASigned transaction.
Sourcepub fn nonce_key_slot(&self) -> Option<U256>
pub fn nonce_key_slot(&self) -> Option<U256>
Returns the storage slot for the nonce key of this transaction.
Sourcepub fn is_payment(&self) -> bool
pub fn is_payment(&self) -> bool
Returns whether this is a payment transaction according to the T5+ builder criteria.
Sourcepub fn is_aa_2d(&self) -> bool
pub fn is_aa_2d(&self) -> bool
Returns true if this transaction belongs into the 2D nonce pool:
- AA transaction with a
nonce key != 0(includes expiring nonce txs)
Sourcepub fn is_expiring_nonce(&self) -> bool
pub fn is_expiring_nonce(&self) -> bool
Returns true if this is an expiring nonce transaction.
Sourcepub fn keychain_subject(&self) -> Option<KeychainSubject>
pub fn keychain_subject(&self) -> Option<KeychainSubject>
Extracts the keychain subject (account, key_id, fee_token) from this transaction.
Returns None if:
- This is not an AA transaction
- The signature is not a keychain signature
- The key_id cannot be recovered from the signature
Used for matching transactions against revocation and spending limit events.
Extracts the keychain subject for the signer of an inline KeyAuthorization.
Used for revocation matching: if the access key that signed an inline authorization is revoked while the transaction is still in the pool, the transaction must be revalidated.
Extracts the target key of an inline KeyAuthorization.
Used for matching pending authorizations against key status changes emitted by already-included authorizations or revocations.
Extracts the TIP-1053 key-authorization witness carried by this transaction, if any.
Sourcepub fn aa_transaction_id(&self) -> Option<AA2dTransactionId>
pub fn aa_transaction_id(&self) -> Option<AA2dTransactionId>
Returns the unique identifier for this AA transaction.
Sourcepub(crate) fn tx_env_slow(&self) -> TempoTxEnv
pub(crate) fn tx_env_slow(&self) -> TempoTxEnv
Computes the TempoTxEnv for this transaction.
Sourcepub fn tx_env(&self) -> &TempoTxEnv
pub fn tx_env(&self) -> &TempoTxEnv
Pre-computes and caches the TempoTxEnv.
This should be called during validation to prepare the transaction environment ahead of time, avoiding it during payload building.
Sourcepub(crate) fn cached_tx_env(&self) -> Option<&TempoTxEnv>
pub(crate) fn cached_tx_env(&self) -> Option<&TempoTxEnv>
Returns the cached TempoTxEnv if already prepared.
Sourcepub(crate) fn cache_tx_env(&self, tx_env: TempoTxEnv)
pub(crate) fn cache_tx_env(&self, tx_env: TempoTxEnv)
Attempts to cache a prepared TempoTxEnv.
Sourcepub fn clone_tx_env(&self) -> TempoTxEnv
pub fn clone_tx_env(&self) -> TempoTxEnv
Returns a cloned TempoTxEnv for this transaction.
This uses the cached value prepared by Self::tx_env when available,
and computes it on-demand otherwise.
Sourcepub fn executable(&self) -> (TempoTxEnv, &Recovered<TempoTxEnvelope>)
pub fn executable(&self) -> (TempoTxEnv, &Recovered<TempoTxEnvelope>)
Returns a tuple that can be passed to block executor.
Sourcepub fn clone_into_with_tx_env(
&self,
) -> WithTxEnv<TempoTxEnv, Recovered<TempoTxEnvelope>>
pub fn clone_into_with_tx_env( &self, ) -> WithTxEnv<TempoTxEnv, Recovered<TempoTxEnvelope>>
Returns a [WithTxEnv] wrapper by cloning the cached TempoTxEnv and
recovered transaction.
This avoids cloning the full pooled transaction when the caller only needs an owned executable transaction.
Sourcepub fn into_with_tx_env(
self,
) -> WithTxEnv<TempoTxEnv, Recovered<TempoTxEnvelope>>
pub fn into_with_tx_env( self, ) -> WithTxEnv<TempoTxEnv, Recovered<TempoTxEnvelope>>
Returns a [WithTxEnv] wrapper containing the cached TempoTxEnv.
If the TempoTxEnv was pre-computed via Self::tx_env, the cached
value is used. Otherwise, it is computed on-demand.
Sourcepub fn set_key_expiry(&self, expiry: Option<u64>)
pub fn set_key_expiry(&self, expiry: Option<u64>)
Sets the keychain key expiry timestamp for this transaction.
Called during validation when we read the AuthorizedKey from state.
Pass Some(expiry) for keys with finite expiry, None for non-keychain txs
or keys that never expire.
Sourcepub fn key_expiry(&self) -> Option<u64>
pub fn key_expiry(&self) -> Option<u64>
Returns the keychain key expiry timestamp, if set during validation.
Returns Some(expiry) for keychain transactions with finite expiry.
Returns None if not a keychain tx, key never expires, or not yet validated.
Sourcepub fn set_resolved_fee_token(&self, fee_token: Address)
pub fn set_resolved_fee_token(&self, fee_token: Address)
Caches the effective fee token determined during transaction validation.
The validator sets this after EVM validation resolves the token from the
transaction’s explicit fee_token field or from fee-manager state. Pool
maintenance code should not call this directly.
Sourcepub fn resolved_fee_token(&self) -> Option<Address>
pub fn resolved_fee_token(&self) -> Option<Address>
Returns the fee token cached during transaction validation, if available.
This is None for transactions that have not completed validation through
the pool validator. Prefer Self::effective_fee_token in maintenance code
that needs the token a transaction will actually use to pay fees.
Sourcepub fn effective_fee_token(&self) -> Address
pub fn effective_fee_token(&self) -> Address
Returns the effective fee token for pool maintenance and accounting.
This prefers the token cached by validation, then falls back to the raw
transaction fee_token field, and finally to DEFAULT_FEE_TOKEN. This
fallback covers non-AA transactions and AA transactions without an explicit
fee token. Use this when checking liquidity, token pause state, balances, or
transfer policies. Use the raw fee_token field only when the code
specifically needs to know whether the transaction explicitly supplied a token.
Sourcepub fn fee_balance_slot(&self) -> Option<(Address, U256)>
pub fn fee_balance_slot(&self) -> Option<(Address, U256)>
Returns the (fee_token, balance_slot) pair for this transaction’s fee payer,
lazily computed and cached on first access.
Sourcepub(crate) fn is_sender_paid_fee(&self) -> bool
pub(crate) fn is_sender_paid_fee(&self) -> bool
Returns true when the transaction fee is paid by the transaction sender.
Invalid fee payer recovery is treated as sender-paid so maintenance never skips a conservative sender-scoped invalidation for malformed pooled state.
Sourcepub fn expiring_nonce_hash(&self) -> Option<B256>
pub fn expiring_nonce_hash(&self) -> Option<B256>
Returns the sender-scoped expiring nonce hash for AA transactions.
Expiring nonce transactions use the precomputed value from construction; other AA transactions compute on demand to preserve the helper’s existing behavior.
Sourcepub(crate) fn precomputed_expiring_nonce_hash(&self) -> B256
pub(crate) fn precomputed_expiring_nonce_hash(&self) -> B256
Returns the precomputed hash for transactions already classified as expiring nonce.
Sourcepub fn expiring_nonce_slot(&self) -> Option<U256>
pub fn expiring_nonce_slot(&self) -> Option<U256>
Returns the cached expiring_nonce_seen storage slot for this transaction.
Sourcepub fn precalculate_keccak_slots(&self)
pub fn precalculate_keccak_slots(&self)
Warms the global keccak cache with storage slot hashes that will be accessed during payment execution after pool validation.
Fee-path slots like balances[fee_payer], user_reward_info[fee_payer],
user_tokens[fee_payer], and expiring_nonce_seen[hash] are already cached from
EVM validation. validator_tokens[beneficiary] depends on the block producer,
which is unknown at validation time.
Trait Implementations§
Source§impl Clone for TempoPooledTransaction
impl Clone for TempoPooledTransaction
Source§fn clone(&self) -> TempoPooledTransaction
fn clone(&self) -> TempoPooledTransaction
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for TempoPooledTransaction
impl Debug for TempoPooledTransaction
Source§impl Encodable2718 for TempoPooledTransaction
impl Encodable2718 for TempoPooledTransaction
Source§fn encode_2718_len(&self) -> usize
fn encode_2718_len(&self) -> usize
Source§fn encode_2718(&self, out: &mut dyn BufMut)
fn encode_2718(&self, out: &mut dyn BufMut)
§fn encoded_2718(&self) -> Vec<u8> ⓘ
fn encoded_2718(&self) -> Vec<u8> ⓘ
§fn trie_hash(&self) -> FixedBytes<32>
fn trie_hash(&self) -> FixedBytes<32>
§fn into_encoded(self) -> WithEncoded<Self>
fn into_encoded(self) -> WithEncoded<Self>
WithEncoded] wrapper. Read more§fn network_len(&self) -> usize
fn network_len(&self) -> usize
§fn network_encode(&self, out: &mut dyn BufMut)
fn network_encode(&self, out: &mut dyn BufMut)
Source§impl EthPoolTransaction for TempoPooledTransaction
impl EthPoolTransaction for TempoPooledTransaction
Source§fn take_blob(&mut self) -> EthBlobTransactionSidecar
fn take_blob(&mut self) -> EthBlobTransactionSidecar
Source§fn try_into_pooled_eip4844(
self,
_sidecar: Arc<BlobTransactionSidecarVariant>,
) -> Option<Recovered<Self::Pooled>>
fn try_into_pooled_eip4844( self, _sidecar: Arc<BlobTransactionSidecarVariant>, ) -> Option<Recovered<Self::Pooled>>
Source§fn try_from_eip4844(
_tx: Recovered<Self::Consensus>,
_sidecar: BlobTransactionSidecarVariant,
) -> Option<Self>
fn try_from_eip4844( _tx: Recovered<Self::Consensus>, _sidecar: BlobTransactionSidecarVariant, ) -> Option<Self>
Source§fn validate_blob(
&self,
_sidecar: &BlobTransactionSidecarVariant,
_settings: &KzgSettings,
) -> Result<(), BlobTransactionValidationError>
fn validate_blob( &self, _sidecar: &BlobTransactionSidecarVariant, _settings: &KzgSettings, ) -> Result<(), BlobTransactionValidationError>
Source§impl InMemorySize for TempoPooledTransaction
impl InMemorySize for TempoPooledTransaction
Source§impl PoolTransaction for TempoPooledTransaction
impl PoolTransaction for TempoPooledTransaction
Source§type TryFromConsensusError = Infallible
type TryFromConsensusError = Infallible
try_from_consensus method.Source§type Consensus = TempoTxEnvelope
type Consensus = TempoTxEnvelope
Source§type Pooled = TempoTxEnvelope
type Pooled = TempoTxEnvelope
Source§fn clone_into_consensus(&self) -> Recovered<Self::Consensus>
fn clone_into_consensus(&self) -> Recovered<Self::Consensus>
Source§fn consensus_ref(&self) -> Recovered<&Self::Consensus>
fn consensus_ref(&self) -> Recovered<&Self::Consensus>
Source§fn into_consensus(self) -> Recovered<Self::Consensus>
fn into_consensus(self) -> Recovered<Self::Consensus>
Self type to ConsensusSource§fn from_pooled(tx: Recovered<Self::Pooled>) -> Self
fn from_pooled(tx: Recovered<Self::Pooled>) -> Self
Pooled type to SelfSource§fn recover_raw_transaction(data: &[u8]) -> Result<Self, RawPoolTransactionError>
fn recover_raw_transaction(data: &[u8]) -> Result<Self, RawPoolTransactionError>
Source§fn sender_ref(&self) -> &Address
fn sender_ref(&self) -> &Address
Source§fn cost(&self) -> &U256
fn cost(&self) -> &U256
Source§fn encoded_length(&self) -> usize
fn encoded_length(&self) -> usize
Source§fn requires_nonce_check(&self) -> bool
fn requires_nonce_check(&self) -> bool
§fn try_from_consensus(
tx: Recovered<Self::Consensus>,
) -> Result<Self, Self::TryFromConsensusError>
fn try_from_consensus( tx: Recovered<Self::Consensus>, ) -> Result<Self, Self::TryFromConsensusError>
§fn into_consensus_with2718(self) -> WithEncoded<Recovered<Self::Consensus>>
fn into_consensus_with2718(self) -> WithEncoded<Recovered<Self::Consensus>>
§fn try_into_pooled(
self,
) -> Result<Recovered<Self::Pooled>, Self::TryFromConsensusError>
fn try_into_pooled( self, ) -> Result<Recovered<Self::Pooled>, Self::TryFromConsensusError>
Consensus type into the Pooled type.§fn clone_into_pooled(
&self,
) -> Result<Recovered<Self::Pooled>, Self::TryFromConsensusError>
fn clone_into_pooled( &self, ) -> Result<Recovered<Self::Pooled>, Self::TryFromConsensusError>
Consensus type into the
Pooled type.§fn pooled_into_consensus(tx: Self::Pooled) -> Self::Consensus
fn pooled_into_consensus(tx: Self::Pooled) -> Self::Consensus
Pooled type into the Consensus type.Source§impl Transaction for TempoPooledTransaction
impl Transaction for TempoPooledTransaction
Source§fn max_fee_per_gas(&self) -> u128
fn max_fee_per_gas(&self) -> u128
Source§fn max_priority_fee_per_gas(&self) -> Option<u128>
fn max_priority_fee_per_gas(&self) -> Option<u128>
Source§fn max_fee_per_blob_gas(&self) -> Option<u128>
fn max_fee_per_blob_gas(&self) -> Option<u128>
Source§fn priority_fee_or_price(&self) -> u128
fn priority_fee_or_price(&self) -> u128
Source§fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
fn effective_gas_price(&self, base_fee: Option<u64>) -> u128
Source§fn is_dynamic_fee(&self) -> bool
fn is_dynamic_fee(&self) -> bool
true if the transaction supports dynamic fees.Source§fn is_create(&self) -> bool
fn is_create(&self) -> bool
kind as it copies the 21-byte
[TxKind] for this simple check. A proper implementation shouldn’t allocate.Source§fn access_list(&self) -> Option<&AccessList>
fn access_list(&self) -> Option<&AccessList>
access_list for the particular transaction type. Returns None for
older transaction types.Source§fn blob_versioned_hashes(&self) -> Option<&[B256]>
fn blob_versioned_hashes(&self) -> Option<&[B256]>
None.SignedAuthorization] list of the transaction. Read more§fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>
fn effective_tip_per_gas(&self, base_fee: u64) -> Option<u128>
§fn to(&self) -> Option<Address>
fn to(&self) -> Option<Address>
§fn function_selector(&self) -> Option<&FixedBytes<4>>
fn function_selector(&self) -> Option<&FixedBytes<4>>
§fn blob_count(&self) -> Option<u64>
fn blob_count(&self) -> Option<u64>
§fn blob_gas_used(&self) -> Option<u64>
fn blob_gas_used(&self) -> Option<u64>
SignedAuthorization]s in this transactions Read moreSource§impl Typed2718 for TempoPooledTransaction
impl Typed2718 for TempoPooledTransaction
§fn is_eip2930(&self) -> bool
fn is_eip2930(&self) -> bool
§fn is_eip1559(&self) -> bool
fn is_eip1559(&self) -> bool
§fn is_eip4844(&self) -> bool
fn is_eip4844(&self) -> bool
§fn is_eip7702(&self) -> bool
fn is_eip7702(&self) -> bool
Auto Trait Implementations§
impl !Freeze for TempoPooledTransaction
impl RefUnwindSafe for TempoPooledTransaction
impl Send for TempoPooledTransaction
impl Sync for TempoPooledTransaction
impl Unpin for TempoPooledTransaction
impl UnsafeUnpin for TempoPooledTransaction
impl UnwindSafe for TempoPooledTransaction
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> ErasedDestructor for Twhere
T: 'static,
§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> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§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>
§impl<B> IntoBlock<B> for B
impl<B> IntoBlock<B> for B
§fn into_block(self) -> B
fn into_block(self) -> B
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].impl<T> MaybeDebug for Twhere
T: Debug,
impl<T> MaybeSend for Twhere
T: Send,
§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> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
propagate-header only.§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
add-extension only.§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
map-request-body only.§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
compression-br or compression-deflate or compression-gzip or compression-zstd only.§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
sensitive-headers only.§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
catch-panic only.500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
limit only.413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§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>
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: 1920 bytes