pub enum EitherWriter<'a, CURSOR, N> {
Database(CURSOR),
StaticFile(StaticFileProviderRWRefMut<'a, N>),
RocksDB(RocksDBBatch<'a>),
}provider only.Expand description
Represents a destination for writing data, either to database, static files, or RocksDB.
Variants§
Database(CURSOR)
Write to database table via cursor
StaticFile(StaticFileProviderRWRefMut<'a, N>)
Write to static file
RocksDB(RocksDBBatch<'a>)
rocksdb only.Write to RocksDB using a write-only batch (historical tables).
Implementations§
Source§impl<'a> EitherWriter<'a, (), ()>
impl<'a> EitherWriter<'a, (), ()>
Sourcepub fn new_receipts<P>(
provider: &'a P,
block_number: u64,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<Receipts<<<P as NodePrimitivesProvider>::Primitives as NodePrimitives>::Receipt>>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache + StaticFileProviderFactory,
<P as DBProvider>::Tx: DbTxMut,
<<P as NodePrimitivesProvider>::Primitives as NodePrimitives>::Receipt: Value,
pub fn new_receipts<P>(
provider: &'a P,
block_number: u64,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<Receipts<<<P as NodePrimitivesProvider>::Primitives as NodePrimitives>::Receipt>>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache + StaticFileProviderFactory,
<P as DBProvider>::Tx: DbTxMut,
<<P as NodePrimitivesProvider>::Primitives as NodePrimitives>::Receipt: Value,
Creates a new EitherWriter for receipts based on storage settings and prune modes.
Sourcepub fn receipts_destination<P>(provider: &P) -> EitherWriterDestinationwhere
P: DBProvider + StorageSettingsCache,
pub fn receipts_destination<P>(provider: &P) -> EitherWriterDestinationwhere
P: DBProvider + StorageSettingsCache,
Returns the destination for writing receipts.
The rules are as follows:
- If the node should not always write receipts to static files, and any receipt pruning is enabled, write to the database.
- If the node should always write receipts to static files, but receipt log filter pruning is enabled, write to the database.
- Otherwise, write to static files.
Sourcepub fn new_senders<P>(
provider: &'a P,
block_number: u64,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<TransactionSenders>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache + StaticFileProviderFactory,
<P as DBProvider>::Tx: DbTxMut,
pub fn new_senders<P>(
provider: &'a P,
block_number: u64,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<TransactionSenders>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache + StaticFileProviderFactory,
<P as DBProvider>::Tx: DbTxMut,
Creates a new EitherWriter for senders based on storage settings.
Sourcepub fn new_storages_history<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<StoragesHistory>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
pub fn new_storages_history<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<StoragesHistory>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
Creates a new EitherWriter for storages history based on storage settings.
Sourcepub fn new_transaction_hash_numbers<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<TransactionHashNumbers>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
pub fn new_transaction_hash_numbers<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<TransactionHashNumbers>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
Creates a new EitherWriter for transaction hash numbers based on storage settings.
Sourcepub fn new_accounts_history<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<AccountsHistory>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
pub fn new_accounts_history<P>(
provider: &P,
_rocksdb_batch: RocksDBBatch<'a>,
) -> Result<EitherWriter<'a, <<P as DBProvider>::Tx as DbTxMut>::CursorMut<AccountsHistory>, <P as NodePrimitivesProvider>::Primitives>, ProviderError>where
P: DBProvider + NodePrimitivesProvider + StorageSettingsCache,
<P as DBProvider>::Tx: DbTxMut,
Creates a new EitherWriter for account history based on storage settings.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
Sourcepub fn into_raw_rocksdb_batch(self) -> Option<WriteBatchWithTransaction<true>>
Available on Unix and crate feature rocksdb only.
pub fn into_raw_rocksdb_batch(self) -> Option<WriteBatchWithTransaction<true>>
rocksdb only.Extracts the raw RocksDB write batch from this writer, if it contains one.
Returns Some(WriteBatchWithTransaction) for Self::RocksDB variant,
None for other variants.
This is used to defer RocksDB commits to the provider level, ensuring all
storage commits (MDBX, static files, RocksDB) happen atomically in a single place.
Sourcepub fn increment_block(
&mut self,
expected_block_number: u64,
) -> Result<(), ProviderError>
pub fn increment_block( &mut self, expected_block_number: u64, ) -> Result<(), ProviderError>
Increment the block number.
Relevant only for Self::StaticFile. It is a no-op for Self::Database.
Sourcepub fn ensure_at_block(
&mut self,
block_number: u64,
) -> Result<(), ProviderError>
pub fn ensure_at_block( &mut self, block_number: u64, ) -> Result<(), ProviderError>
Ensures that the writer is positioned at the specified block number.
If the writer is positioned at a greater block number than the specified one, the writer will NOT be unwound and the error will be returned.
Relevant only for Self::StaticFile. It is a no-op for Self::Database.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
<N as NodePrimitives>::Receipt: Value,
CURSOR: DbCursorRW<Receipts<<N as NodePrimitives>::Receipt>>,
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
<N as NodePrimitives>::Receipt: Value,
CURSOR: DbCursorRW<Receipts<<N as NodePrimitives>::Receipt>>,
Sourcepub fn append_receipt(
&mut self,
tx_num: u64,
receipt: &<N as NodePrimitives>::Receipt,
) -> Result<(), ProviderError>
pub fn append_receipt( &mut self, tx_num: u64, receipt: &<N as NodePrimitives>::Receipt, ) -> Result<(), ProviderError>
Append a transaction receipt.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
Sourcepub fn append_sender(
&mut self,
tx_num: u64,
sender: &Address,
) -> Result<(), ProviderError>
pub fn append_sender( &mut self, tx_num: u64, sender: &Address, ) -> Result<(), ProviderError>
Append a transaction sender to the destination
Sourcepub fn append_senders<I>(&mut self, senders: I) -> Result<(), ProviderError>
pub fn append_senders<I>(&mut self, senders: I) -> Result<(), ProviderError>
Append transaction senders to the destination
Sourcepub fn prune_senders(
&mut self,
unwind_tx_from: u64,
block: u64,
) -> Result<(), ProviderError>where
CURSOR: DbCursorRO<TransactionSenders>,
pub fn prune_senders(
&mut self,
unwind_tx_from: u64,
block: u64,
) -> Result<(), ProviderError>where
CURSOR: DbCursorRO<TransactionSenders>,
Removes all transaction senders above the given transaction number, and stops at the given block number.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
CURSOR: DbCursorRW<TransactionHashNumbers> + DbCursorRO<TransactionHashNumbers>,
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>where
N: NodePrimitives,
CURSOR: DbCursorRW<TransactionHashNumbers> + DbCursorRO<TransactionHashNumbers>,
Sourcepub fn put_transaction_hash_number(
&mut self,
hash: FixedBytes<32>,
tx_num: u64,
append_only: bool,
) -> Result<(), ProviderError>
pub fn put_transaction_hash_number( &mut self, hash: FixedBytes<32>, tx_num: u64, append_only: bool, ) -> Result<(), ProviderError>
Puts a transaction hash number mapping.
When append_only is true, uses cursor.append() which is significantly faster
but requires entries to be inserted in order and the table to be empty.
When false, uses cursor.insert() which handles arbitrary insertion order.
Sourcepub fn delete_transaction_hash_number(
&mut self,
hash: FixedBytes<32>,
) -> Result<(), ProviderError>
pub fn delete_transaction_hash_number( &mut self, hash: FixedBytes<32>, ) -> Result<(), ProviderError>
Deletes a transaction hash number mapping.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
Sourcepub fn put_storage_history(
&mut self,
key: StorageShardedKey,
value: &IntegerList,
) -> Result<(), ProviderError>
pub fn put_storage_history( &mut self, key: StorageShardedKey, value: &IntegerList, ) -> Result<(), ProviderError>
Puts a storage history entry.
Sourcepub fn delete_storage_history(
&mut self,
key: StorageShardedKey,
) -> Result<(), ProviderError>
pub fn delete_storage_history( &mut self, key: StorageShardedKey, ) -> Result<(), ProviderError>
Deletes a storage history entry.
Source§impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> EitherWriter<'a, CURSOR, N>
Sourcepub fn put_account_history(
&mut self,
key: ShardedKey<Address>,
value: &IntegerList,
) -> Result<(), ProviderError>
pub fn put_account_history( &mut self, key: ShardedKey<Address>, value: &IntegerList, ) -> Result<(), ProviderError>
Puts an account history entry.
Sourcepub fn delete_account_history(
&mut self,
key: ShardedKey<Address>,
) -> Result<(), ProviderError>
pub fn delete_account_history( &mut self, key: ShardedKey<Address>, ) -> Result<(), ProviderError>
Deletes an account history entry.
Trait Implementations§
Source§impl<'a, CURSOR, N> Debug for EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> Debug for EitherWriter<'a, CURSOR, N>
Auto Trait Implementations§
impl<'a, CURSOR, N> Freeze for EitherWriter<'a, CURSOR, N>where
CURSOR: Freeze,
impl<'a, CURSOR, N> !RefUnwindSafe for EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> Send for EitherWriter<'a, CURSOR, N>where
CURSOR: Send,
impl<'a, CURSOR, N> !Sync for EitherWriter<'a, CURSOR, N>
impl<'a, CURSOR, N> Unpin for EitherWriter<'a, CURSOR, N>where
CURSOR: Unpin,
impl<'a, CURSOR, N> !UnwindSafe for EitherWriter<'a, CURSOR, N>
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<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§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,
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> ToCompactString for Twhere
T: Display,
impl<T> ToCompactString for Twhere
T: Display,
§fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
fn try_to_compact_string(&self) -> Result<CompactString, ToCompactStringError>
ToCompactString::to_compact_string()] Read more§fn to_compact_string(&self) -> CompactString
fn to_compact_string(&self) -> CompactString
CompactString]. Read more§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§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,
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.