Struct PoolInner
pub struct PoolInner<V, T, S>where
T: TransactionOrdering,{ /* private fields */ }
Expand description
Transaction pool internals.
Implementations§
§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,
pub 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.
pub const fn blob_store(&self) -> &S
pub const fn blob_store(&self) -> &S
Returns the configured blob store.
pub fn block_info(&self) -> BlockInfo
pub fn block_info(&self) -> BlockInfo
Returns the currently tracked block
pub fn set_block_info(&self, info: BlockInfo)
pub fn set_block_info(&self, info: BlockInfo)
Sets the currently tracked block
pub fn get_sender_id(&self, addr: Address) -> SenderId
pub fn get_sender_id(&self, addr: Address) -> SenderId
Returns the internal SenderId
for this address
pub fn unique_senders(&self) -> HashSet<Address>
pub fn unique_senders(&self) -> HashSet<Address>
Returns all senders in the pool
pub const fn config(&self) -> &PoolConfig
pub const fn config(&self) -> &PoolConfig
Get the config the pool was configured with.
pub 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
pub 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.
pub 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.
pub 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.
pub 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.
pub 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.
pub fn pooled_transactions_hashes(&self) -> Vec<FixedBytes<32>>
pub fn pooled_transactions_hashes(&self) -> Vec<FixedBytes<32>>
Returns hashes of all transactions in the pool.
pub fn pooled_transactions(
&self,
) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
pub fn pooled_transactions( &self, ) -> Vec<Arc<ValidPoolTransaction<<T as TransactionOrdering>::Transaction>>>
Returns all transactions in the pool.
pub 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.
pub 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.
pub fn get_pooled_transaction_element(
&self,
tx_hash: FixedBytes<32>,
) -> Option<RecoveredTx<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>>
pub fn get_pooled_transaction_element( &self, tx_hash: FixedBytes<32>, ) -> Option<RecoveredTx<<<V as TransactionValidator>::Transaction as PoolTransaction>::Pooled>>
Returns converted pooled transaction for the given transaction hash.
pub fn on_canonical_state_change<H, B>(
&self,
update: CanonicalStateUpdate<'_, H, B>,
)where
H: BlockHeader,
B: BlockBody,
pub fn on_canonical_state_change<H, B>(
&self,
update: CanonicalStateUpdate<'_, H, B>,
)where
H: BlockHeader,
B: BlockBody,
Updates the entire pool after a new block was executed.
pub 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.
pub 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.
pub fn add_transactions(
&self,
origin: TransactionOrigin,
transactions: impl IntoIterator<Item = TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>>,
) -> Vec<Result<FixedBytes<32>, PoolError>>
pub fn add_transactions( &self, origin: TransactionOrigin, transactions: impl IntoIterator<Item = TransactionValidationOutcome<<T as TransactionOrdering>::Transaction>>, ) -> Vec<Result<FixedBytes<32>, 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.
pub 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.
pub 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.
pub 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.
pub 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
pub 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
pub 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
pub 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.
pub 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.
pub 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.
pub 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.
pub 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.
pub 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
pub 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
pub 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
pub 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
pub 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
pub 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.
pub 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
pub 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
pub 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 filted by TransactionOrigin
pub 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.
pub fn on_propagated(&self, txs: PropagatedTransactions)
pub fn on_propagated(&self, txs: PropagatedTransactions)
Notify about propagated transactions.
pub 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.
pub fn delete_blob(&self, blob: FixedBytes<32>)
pub fn delete_blob(&self, blob: FixedBytes<32>)
Delete a blob from the blob store
pub fn delete_blobs(&self, txs: Vec<FixedBytes<32>>)
pub fn delete_blobs(&self, txs: Vec<FixedBytes<32>>)
Delete all blobs from the blob store
pub 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<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> 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: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.