pub struct PoolInner<V, T, S>where
T: TransactionOrdering,{ /* private fields */ }Expand description
Transaction pool internals.
Implementations§
Source§impl<V, T, S> PoolInner<V, T, S>where
V: TransactionValidator,
T: TransactionOrdering<Transaction = <V as TransactionValidator>::Transaction>,
S: BlobStore,
impl<V, T, S> PoolInner<V, T, S>where
V: TransactionValidator,
T: TransactionOrdering<Transaction = <V as TransactionValidator>::Transaction>,
S: BlobStore,
Sourcepub fn new(
validator: V,
ordering: T,
blob_store: S,
config: PoolConfig,
) -> PoolInner<V, T, S>
pub fn new( validator: V, ordering: T, blob_store: S, config: PoolConfig, ) -> PoolInner<V, T, S>
Create a new transaction pool instance.
Sourcepub const fn blob_store(&self) -> &S
pub const fn blob_store(&self) -> &S
Returns the configured blob store.
Sourcepub fn block_info(&self) -> BlockInfo
pub fn block_info(&self) -> BlockInfo
Returns the currently tracked block
Sourcepub fn set_block_info(&self, info: BlockInfo)
pub fn set_block_info(&self, info: BlockInfo)
Sets the currently tracked block
Sourcepub fn get_sender_id(&self, addr: Address) -> SenderId
pub fn get_sender_id(&self, addr: Address) -> SenderId
Returns the internal SenderId for this address
Sourcepub fn get_sender_ids(
&self,
addrs: impl IntoIterator<Item = Address>,
) -> Vec<SenderId>
pub fn get_sender_ids( &self, addrs: impl IntoIterator<Item = Address>, ) -> Vec<SenderId>
Returns the internal SenderIds for the given addresses.
Sourcepub fn unique_senders(&self) -> HashSet<Address>
pub fn unique_senders(&self) -> HashSet<Address>
Returns all senders in the pool
Sourcepub const fn config(&self) -> &PoolConfig
pub const fn config(&self) -> &PoolConfig
Get the config the pool was configured with.
Sourcepub fn add_pending_listener(
&self,
kind: TransactionListenerKind,
) -> Receiver<FixedBytes<32>>
pub fn add_pending_listener( &self, kind: TransactionListenerKind, ) -> Receiver<FixedBytes<32>>
Adds a new transaction listener to the pool that gets notified about every new pending transaction inserted into the pool
Sourcepub fn add_new_transaction_listener(
&self,
kind: TransactionListenerKind,
) -> Receiver<NewTransactionEvent<<T as TransactionOrdering>::Transaction>>
pub fn add_new_transaction_listener( &self, kind: TransactionListenerKind, ) -> Receiver<NewTransactionEvent<<T as TransactionOrdering>::Transaction>>
Adds a new transaction listener to the pool that gets notified about every new transaction.
Sourcepub fn add_blob_sidecar_listener(&self) -> Receiver<NewBlobSidecar>
pub fn add_blob_sidecar_listener(&self) -> Receiver<NewBlobSidecar>
Adds a new blob sidecar listener to the pool that gets notified about every new eip4844 transaction’s blob sidecar.
Sourcepub fn add_transaction_event_listener(
&self,
tx_hash: FixedBytes<32>,
) -> Option<TransactionEvents>
pub fn add_transaction_event_listener( &self, tx_hash: FixedBytes<32>, ) -> Option<TransactionEvents>
If the pool contains the transaction, this adds a new listener that gets notified about transaction events.
Sourcepub fn add_all_transactions_event_listener(
&self,
) -> AllTransactionsEvents<<T as TransactionOrdering>::Transaction>
pub fn add_all_transactions_event_listener( &self, ) -> AllTransactionsEvents<<T as TransactionOrdering>::Transaction>
Adds a listener for all transaction events.
Sourcepub fn get_pool_data(&self) -> RwLockReadGuard<'_, RawRwLock, TxPool<T>>
pub fn get_pool_data(&self) -> RwLockReadGuard<'_, RawRwLock, TxPool<T>>
Returns a read lock to the pool’s data.
Sourcepub fn pooled_transactions_hashes(&self) -> Vec<FixedBytes<32>>
pub fn pooled_transactions_hashes(&self) -> Vec<FixedBytes<32>>
Returns hashes of transactions in the pool that can be propagated.
Sourcepub fn pooled_transactions(
&self,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pooled_transactions( &self, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns transactions in the pool that can be propagated
Sourcepub fn pooled_transactions_max(
&self,
max: usize,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pooled_transactions_max( &self, max: usize, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns only the first max transactions in the pool that can be propagated.
Sourcepub fn get_pooled_transaction_elements(
&self,
tx_hashes: Vec<FixedBytes<32>>,
limit: GetPooledTransactionLimit,
) -> Vec<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>
pub fn get_pooled_transaction_elements( &self, tx_hashes: Vec<FixedBytes<32>>, limit: GetPooledTransactionLimit, ) -> Vec<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>
Returns pooled transactions for the given transaction hashes that are allowed to be propagated.
Sourcepub fn get_pooled_transaction_element(
&self,
tx_hash: FixedBytes<32>,
) -> Option<Recovered<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>>
pub fn get_pooled_transaction_element( &self, tx_hash: FixedBytes<32>, ) -> Option<Recovered<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>>
Returns converted pooled transaction for the given transaction hash.
Sourcepub fn on_canonical_state_change<B>(&self, update: CanonicalStateUpdate<'_, B>)where
B: Block,
pub fn on_canonical_state_change<B>(&self, update: CanonicalStateUpdate<'_, B>)where
B: Block,
Updates the entire pool after a new block was executed.
Sourcepub fn update_accounts(&self, accounts: Vec<ChangedAccount>)
pub fn update_accounts(&self, accounts: Vec<ChangedAccount>)
Performs account updates on the pool.
This will either promote or discard transactions based on the new account state.
This should be invoked when the pool drifted and accounts are updated manually
Sourcepub fn add_transaction_and_subscribe(
&self,
origin: TransactionOrigin,
tx: TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>,
) -> Result<TransactionEvents, PoolError>
pub fn add_transaction_and_subscribe( &self, origin: TransactionOrigin, tx: TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>, ) -> Result<TransactionEvents, PoolError>
Adds a transaction and returns the event stream.
Sourcepub fn add_transactions_with_origins(
&self,
transactions: impl IntoIterator<Item = (TransactionOrigin, TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>)>,
) -> Vec<Result<AddedTransactionOutcome, PoolError>>
pub fn add_transactions_with_origins( &self, transactions: impl IntoIterator<Item = (TransactionOrigin, TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>)>, ) -> Vec<Result<AddedTransactionOutcome, PoolError>>
Adds all transactions in the iterator to the pool, each with its individual origin, returning a list of results.
Note: A large batch may lock the pool for a long time that blocks important operations like updating the pool on canonical state changes. The caller should consider having a max batch size to balance transaction insertions with other updates.
Sourcepub fn add_transactions(
&self,
origin: TransactionOrigin,
transactions: impl IntoIterator<Item = TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>>,
) -> Vec<Result<AddedTransactionOutcome, PoolError>>
pub fn add_transactions( &self, origin: TransactionOrigin, transactions: impl IntoIterator<Item = TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>>, ) -> Vec<Result<AddedTransactionOutcome, PoolError>>
Adds all transactions in the iterator to the pool, returning a list of results.
Note: A large batch may lock the pool for a long time that blocks important operations like updating the pool on canonical state changes. The caller should consider having a max batch size to balance transaction insertions with other updates.
Sourcepub fn best_transactions(&self) -> BestTransactions<T>
pub fn best_transactions(&self) -> BestTransactions<T>
Returns an iterator that yields transactions that are ready to be included in the block.
Sourcepub fn best_transactions_with_attributes(
&self,
best_transactions_attributes: BestTransactionsAttributes,
) -> Box<dyn BestTransactions<Item = Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>>
pub fn best_transactions_with_attributes( &self, best_transactions_attributes: BestTransactionsAttributes, ) -> Box<dyn BestTransactions<Item = Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>>
Returns an iterator that yields transactions that are ready to be included in the block with the given base fee and optional blob fee attributes.
Sourcepub fn pending_transactions_max(
&self,
max: usize,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pending_transactions_max( &self, max: usize, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns only the first max transactions in the pending pool.
Sourcepub fn pending_transactions(
&self,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pending_transactions( &self, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all transactions from the pending sub-pool
Sourcepub fn queued_transactions(
&self,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn queued_transactions( &self, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all transactions from parked pools
Sourcepub fn all_transactions(
&self,
) -> AllPoolTransactions<<T as TransactionOrdering>::Transaction>
pub fn all_transactions( &self, ) -> AllPoolTransactions<<T as TransactionOrdering>::Transaction>
Returns all transactions in the pool
Sourcepub fn all_transaction_hashes(&self) -> Vec<FixedBytes<32>>
pub fn all_transaction_hashes(&self) -> Vec<FixedBytes<32>>
Returns all transactions in the pool
Sourcepub fn remove_transactions(
&self,
hashes: Vec<FixedBytes<32>>,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn remove_transactions( &self, hashes: Vec<FixedBytes<32>>, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Removes and returns all matching transactions from the pool.
This behaves as if the transactions got discarded (not mined), effectively introducing a nonce gap for the given transactions.
Sourcepub fn remove_transactions_and_descendants(
&self,
hashes: Vec<FixedBytes<32>>,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn remove_transactions_and_descendants( &self, hashes: Vec<FixedBytes<32>>, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Removes and returns all matching transactions and their dependent transactions from the pool.
Sourcepub fn remove_transactions_by_sender(
&self,
sender: Address,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn remove_transactions_by_sender( &self, sender: Address, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Removes and returns all transactions by the specified sender from the pool.
Sourcepub fn retain_unknown<A>(&self, announcement: &mut A)where
A: HandleMempoolData,
pub fn retain_unknown<A>(&self, announcement: &mut A)where
A: HandleMempoolData,
Removes and returns all transactions that are present in the pool.
Sourcepub fn get(
&self,
tx_hash: &FixedBytes<32>,
) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get( &self, tx_hash: &FixedBytes<32>, ) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns the transaction by hash.
Sourcepub fn get_transactions_by_sender(
&self,
sender: Address,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_transactions_by_sender( &self, sender: Address, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all transactions of the address
Sourcepub fn get_queued_transactions_by_sender(
&self,
sender: Address,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_queued_transactions_by_sender( &self, sender: Address, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all queued transactions of the address by sender
Sourcepub fn pending_transactions_with_predicate(
&self,
predicate: impl FnMut(&ValidPoolTransaction<<T as TransactionOrdering>::Transaction>) -> bool,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pending_transactions_with_predicate( &self, predicate: impl FnMut(&ValidPoolTransaction<<T as TransactionOrdering>::Transaction>) -> bool, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all pending transactions filtered by predicate
Sourcepub fn get_pending_transactions_by_sender(
&self,
sender: Address,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_pending_transactions_by_sender( &self, sender: Address, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all pending transactions of the address by sender
Sourcepub fn get_highest_transaction_by_sender(
&self,
sender: Address,
) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_highest_transaction_by_sender( &self, sender: Address, ) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns the highest transaction of the address
Sourcepub fn get_highest_consecutive_transaction_by_sender(
&self,
sender: Address,
on_chain_nonce: u64,
) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_highest_consecutive_transaction_by_sender( &self, sender: Address, on_chain_nonce: u64, ) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns the transaction with the highest nonce that is executable given the on chain nonce.
Sourcepub fn get_transaction_by_transaction_id(
&self,
transaction_id: &TransactionId,
) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_transaction_by_transaction_id( &self, transaction_id: &TransactionId, ) -> Option<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns the transaction given a TransactionId
Sourcepub fn get_transactions_by_origin(
&self,
origin: TransactionOrigin,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_transactions_by_origin( &self, origin: TransactionOrigin, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all transactions that where submitted with the given TransactionOrigin
Sourcepub fn get_pending_transactions_by_origin(
&self,
origin: TransactionOrigin,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_pending_transactions_by_origin( &self, origin: TransactionOrigin, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all pending transactions filtered by TransactionOrigin
Sourcepub fn get_all(
&self,
txs: Vec<FixedBytes<32>>,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn get_all( &self, txs: Vec<FixedBytes<32>>, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all the transactions belonging to the hashes.
If no transaction exists, it is skipped.
Sourcepub fn on_propagated(&self, txs: PropagatedTransactions)
pub fn on_propagated(&self, txs: PropagatedTransactions)
Notify about propagated transactions.
Sourcepub fn is_exceeded(&self) -> bool
pub fn is_exceeded(&self) -> bool
Returns whether or not the pool is over its configured size and transaction count limits.
Sourcepub fn delete_blob(&self, blob: FixedBytes<32>)
pub fn delete_blob(&self, blob: FixedBytes<32>)
Delete a blob from the blob store
Sourcepub fn delete_blobs(&self, txs: Vec<FixedBytes<32>>)
pub fn delete_blobs(&self, txs: Vec<FixedBytes<32>>)
Delete all blobs from the blob store
Sourcepub fn cleanup_blobs(&self)
pub fn cleanup_blobs(&self)
Cleans up the blob store
Trait Implementations§
Auto Trait Implementations§
impl<V, T, S> !Freeze for PoolInner<V, T, S>
impl<V, T, S> !RefUnwindSafe for PoolInner<V, T, S>
impl<V, T, S> Send for PoolInner<V, T, S>
impl<V, T, S> Sync for PoolInner<V, T, S>
impl<V, T, S> Unpin for PoolInner<V, T, S>
impl<V, T, S> !UnwindSafe for PoolInner<V, T, S>
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> 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> ⓘ
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> 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> 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> 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,
§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,
§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,
§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,
§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
§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,
§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,
§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,
§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,
§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,
§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,
§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,
§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,
§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,
§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,
§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,
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,
§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
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,
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,
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,
§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: 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: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.