pub struct RocksDBProvider(/* private fields */);Expand description
RocksDB provider for auxiliary storage layer beside main database MDBX.
Implementations§
Source§impl RocksDBProvider
impl RocksDBProvider
Sourcepub fn check_consistency<Provider>(
&self,
provider: &Provider,
) -> ProviderResult<Option<BlockNumber>>where
Provider: DBProvider + StageCheckpointReader + StorageSettingsCache + StaticFileProviderFactory + TransactionsProvider<Transaction: Encodable2718>,
pub fn check_consistency<Provider>(
&self,
provider: &Provider,
) -> ProviderResult<Option<BlockNumber>>where
Provider: DBProvider + StageCheckpointReader + StorageSettingsCache + StaticFileProviderFactory + TransactionsProvider<Transaction: Encodable2718>,
Checks consistency of RocksDB tables against MDBX stage checkpoints.
Returns an unwind target block number if the pipeline needs to unwind to rebuild
RocksDB data. Returns None if all invariants pass or if inconsistencies were healed.
§Invariants checked
For TransactionHashNumbers:
- The maximum
TxNumbervalue should not exceed what theTransactionLookupstage checkpoint indicates has been processed. - If
RocksDBis ahead, excess entries are pruned (healed). - If
RocksDBis behind, an unwind is required.
For StoragesHistory:
- The maximum block number in shards should not exceed the
IndexStorageHistorystage checkpoint. - Similar healing/unwind logic applies.
§Requirements
For pruning TransactionHashNumbers, the provider must be able to supply transaction
data (typically from static files) so that transaction hashes can be computed. This
implies that static files should be ahead of or in sync with RocksDB.
Source§impl RocksDBProvider
impl RocksDBProvider
Sourcepub fn new(path: impl AsRef<Path>) -> ProviderResult<Self>
pub fn new(path: impl AsRef<Path>) -> ProviderResult<Self>
Creates a new RocksDB provider.
Sourcepub fn builder(path: impl AsRef<Path>) -> RocksDBBuilder
pub fn builder(path: impl AsRef<Path>) -> RocksDBBuilder
Creates a new RocksDB provider builder.
Sourcepub fn is_read_only(&self) -> bool
pub fn is_read_only(&self) -> bool
Returns true if this provider is in read-only mode.
Sourcepub fn tx(&self) -> RocksTx<'_>
pub fn tx(&self) -> RocksTx<'_>
Creates a new transaction with MDBX-like semantics (read-your-writes, rollback).
Note: With OptimisticTransactionDB, commits may fail if there are conflicts.
Conflict detection happens at commit time, not at write time.
§Panics
Panics if the provider is in read-only mode.
Sourcepub fn batch(&self) -> RocksDBBatch<'_>
pub fn batch(&self) -> RocksDBBatch<'_>
Creates a new batch for atomic writes.
Use Self::write_batch for closure-based atomic writes.
Use this method when the batch needs to be held by crate::EitherWriter.
§Panics
Panics if the provider is in read-only mode when attempting to commit.
Sourcepub fn batch_with_auto_commit(&self) -> RocksDBBatch<'_>
pub fn batch_with_auto_commit(&self) -> RocksDBBatch<'_>
Creates a new batch with auto-commit enabled.
When the batch size exceeds the threshold (4 GiB), the batch is automatically committed and reset. This prevents OOM during large bulk writes while maintaining crash-safety via the consistency check on startup.
Sourcepub fn get<T: Table>(&self, key: T::Key) -> ProviderResult<Option<T::Value>>
pub fn get<T: Table>(&self, key: T::Key) -> ProviderResult<Option<T::Value>>
Gets a value from the specified table.
Sourcepub fn get_encoded<T: Table>(
&self,
key: &<T::Key as Encode>::Encoded,
) -> ProviderResult<Option<T::Value>>
pub fn get_encoded<T: Table>( &self, key: &<T::Key as Encode>::Encoded, ) -> ProviderResult<Option<T::Value>>
Gets a value from the specified table using pre-encoded key.
Sourcepub fn put<T: Table>(&self, key: T::Key, value: &T::Value) -> ProviderResult<()>
pub fn put<T: Table>(&self, key: T::Key, value: &T::Value) -> ProviderResult<()>
Puts upsert a value into the specified table with the given key.
§Panics
Panics if the provider is in read-only mode.
Sourcepub fn put_encoded<T: Table>(
&self,
key: &<T::Key as Encode>::Encoded,
value: &T::Value,
) -> ProviderResult<()>
pub fn put_encoded<T: Table>( &self, key: &<T::Key as Encode>::Encoded, value: &T::Value, ) -> ProviderResult<()>
Puts a value into the specified table using pre-encoded key.
§Panics
Panics if the provider is in read-only mode.
Sourcepub fn clear<T: Table>(&self) -> ProviderResult<()>
pub fn clear<T: Table>(&self) -> ProviderResult<()>
Clears all entries from the specified table.
Uses delete_range_cf from empty key to a max key (256 bytes of 0xFF).
This end key must exceed the maximum encoded key size for any table.
Current max is ~60 bytes (StorageShardedKey = 20 + 32 + 8).
Sourcepub fn first<T: Table>(&self) -> ProviderResult<Option<(T::Key, T::Value)>>
pub fn first<T: Table>(&self) -> ProviderResult<Option<(T::Key, T::Value)>>
Gets the first (smallest key) entry from the specified table.
Sourcepub fn last<T: Table>(&self) -> ProviderResult<Option<(T::Key, T::Value)>>
pub fn last<T: Table>(&self) -> ProviderResult<Option<(T::Key, T::Value)>>
Gets the last (largest key) entry from the specified table.
Sourcepub fn iter<T: Table>(&self) -> ProviderResult<RocksDBIter<'_, T>>
pub fn iter<T: Table>(&self) -> ProviderResult<RocksDBIter<'_, T>>
Creates an iterator over all entries in the specified table.
Returns decoded (Key, Value) pairs in key order.
Sourcepub fn table_stats(&self) -> Vec<RocksDBTableStats>
pub fn table_stats(&self) -> Vec<RocksDBTableStats>
Returns statistics for all column families in the database.
Returns a vector of (table_name, estimated_keys, estimated_size_bytes) tuples.
Sourcepub fn flush(&self, tables: &[&'static str]) -> ProviderResult<()>
pub fn flush(&self, tables: &[&'static str]) -> ProviderResult<()>
Flushes pending writes for the specified tables to disk.
This performs a flush of:
- The Write-Ahead Log (WAL) with sync
- The column family memtables for the specified table names to SST files
After this call completes, all data for the specified tables is durably persisted to disk.
§Panics
Panics if the provider is in read-only mode.
Sourcepub fn raw_iter<T: Table>(&self) -> ProviderResult<RocksDBRawIter<'_>>
pub fn raw_iter<T: Table>(&self) -> ProviderResult<RocksDBRawIter<'_>>
Creates a raw iterator over all entries in the specified table.
Returns raw (key_bytes, value_bytes) pairs without decoding.
Sourcepub fn account_history_shards(
&self,
address: Address,
) -> ProviderResult<Vec<(ShardedKey<Address>, BlockNumberList)>>
pub fn account_history_shards( &self, address: Address, ) -> ProviderResult<Vec<(ShardedKey<Address>, BlockNumberList)>>
Returns all account history shards for the given address in ascending key order.
This is used for unwind operations where we need to scan all shards for an address and potentially delete or truncate them.
Sourcepub fn storage_history_shards(
&self,
address: Address,
storage_key: B256,
) -> ProviderResult<Vec<(StorageShardedKey, BlockNumberList)>>
pub fn storage_history_shards( &self, address: Address, storage_key: B256, ) -> ProviderResult<Vec<(StorageShardedKey, BlockNumberList)>>
Returns all storage history shards for the given (address, storage_key) pair.
Iterates through all shards in ascending highest_block_number order until
a different (address, storage_key) is encountered.
Sourcepub fn unwind_account_history_indices(
&self,
last_indices: &[(Address, BlockNumber)],
) -> ProviderResult<WriteBatchWithTransaction<true>>
pub fn unwind_account_history_indices( &self, last_indices: &[(Address, BlockNumber)], ) -> ProviderResult<WriteBatchWithTransaction<true>>
Unwinds account history indices for the given (address, block_number) pairs.
Groups addresses by their minimum block number and calls the appropriate unwind operations. For each address, keeps only blocks less than the minimum block (i.e., removes the minimum block and all higher blocks).
Returns a WriteBatchWithTransaction that can be committed later.
Sourcepub fn unwind_storage_history_indices(
&self,
storage_changesets: &[(Address, B256, BlockNumber)],
) -> ProviderResult<WriteBatchWithTransaction<true>>
pub fn unwind_storage_history_indices( &self, storage_changesets: &[(Address, B256, BlockNumber)], ) -> ProviderResult<WriteBatchWithTransaction<true>>
Unwinds storage history indices for the given (address, storage_key, block_number) tuples.
Groups by (address, storage_key) and finds the minimum block number for each.
For each key, keeps only blocks less than the minimum block
(i.e., removes the minimum block and all higher blocks).
Returns a WriteBatchWithTransaction that can be committed later.
Sourcepub fn write_batch<F>(&self, f: F) -> ProviderResult<()>
pub fn write_batch<F>(&self, f: F) -> ProviderResult<()>
Writes a batch of operations atomically.
Sourcepub fn commit_batch(
&self,
batch: WriteBatchWithTransaction<true>,
) -> ProviderResult<()>
pub fn commit_batch( &self, batch: WriteBatchWithTransaction<true>, ) -> ProviderResult<()>
Commits a raw WriteBatchWithTransaction to RocksDB.
This is used when the batch was extracted via RocksDBBatch::into_inner
and needs to be committed at a later point (e.g., at provider commit time).
§Panics
Panics if the provider is in read-only mode.
Trait Implementations§
Source§impl Clone for RocksDBProvider
impl Clone for RocksDBProvider
Source§impl DatabaseMetrics for RocksDBProvider
impl DatabaseMetrics for RocksDBProvider
Source§fn gauge_metrics(&self) -> Vec<(&'static str, f64, Vec<Label>)>
fn gauge_metrics(&self) -> Vec<(&'static str, f64, Vec<Label>)>
Source§fn report_metrics(&self)
fn report_metrics(&self)
Auto Trait Implementations§
impl Freeze for RocksDBProvider
impl !RefUnwindSafe for RocksDBProvider
impl Send for RocksDBProvider
impl Sync for RocksDBProvider
impl Unpin for RocksDBProvider
impl !UnwindSafe for RocksDBProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
impl<TxEnv, T> FromRecoveredTx<&T> for TxEnvwhere
TxEnv: FromRecoveredTx<T>,
§fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
fn from_recovered_tx(tx: &&T, sender: Address) -> TxEnv
TxEnv] from a transaction and a sender address.§impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
impl<TxEnv, T> FromTxWithEncoded<&T> for TxEnvwhere
TxEnv: FromTxWithEncoded<T>,
§fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
fn from_encoded_tx(tx: &&T, sender: Address, encoded: Bytes) -> TxEnv
TxEnv] from a transaction, its sender, and encoded transaction bytes.§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> 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> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ServiceExt for T
impl<T> ServiceExt for T
§fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
fn propagate_header(self, header: HeaderName) -> PropagateHeader<Self>where
Self: Sized,
propagate-header only.§fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
fn add_extension<T>(self, value: T) -> AddExtension<Self, T>where
Self: Sized,
add-extension only.§fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
fn map_request_body<F>(self, f: F) -> MapRequestBody<Self, F>where
Self: Sized,
map-request-body only.§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
map-response-body only.§fn compression(self) -> Compression<Self>where
Self: Sized,
fn compression(self) -> Compression<Self>where
Self: Sized,
compression-br or compression-deflate or compression-gzip or compression-zstd only.§fn decompression(self) -> Decompression<Self>where
Self: Sized,
fn decompression(self) -> Decompression<Self>where
Self: Sized,
decompression-br or decompression-deflate or decompression-gzip or decompression-zstd only.§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
trace only.§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
trace only.§fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
fn follow_redirects(self) -> FollowRedirect<Self>where
Self: Sized,
follow-redirect only.§fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
fn sensitive_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<SetSensitiveResponseHeaders<Self>>where
Self: Sized,
sensitive-headers only.§fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
fn sensitive_request_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveRequestHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
fn sensitive_response_headers(
self,
headers: impl IntoIterator<Item = HeaderName>,
) -> SetSensitiveResponseHeaders<Self>where
Self: Sized,
sensitive-headers only.§fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn override_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn append_request_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
fn insert_request_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetRequestHeader<Self, M>where
Self: Sized,
set-header only.§fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn override_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn append_response_header<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
fn insert_response_header_if_not_present<M>(
self,
header_name: HeaderName,
make: M,
) -> SetResponseHeader<Self, M>where
Self: Sized,
set-header only.§fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_request_id<M>(
self,
header_name: HeaderName,
make_request_id: M,
) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.§fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
fn set_x_request_id<M>(self, make_request_id: M) -> SetRequestId<Self, M>where
Self: Sized,
M: MakeRequestId,
request-id only.x-request-id as the header name. Read more§fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_request_id(
self,
header_name: HeaderName,
) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.§fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
fn propagate_x_request_id(self) -> PropagateRequestId<Self>where
Self: Sized,
request-id only.x-request-id as the header name. Read more§fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
fn catch_panic(self) -> CatchPanic<Self, DefaultResponseForPanic>where
Self: Sized,
catch-panic only.500 Internal Server responses. Read more§fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
fn request_body_limit(self, limit: usize) -> RequestBodyLimit<Self>where
Self: Sized,
limit only.413 Payload Too Large responses. Read more§fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn trim_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
fn append_trailing_slash(self) -> NormalizePath<Self>where
Self: Sized,
normalize-path only.§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeDebug for Twhere
T: Debug,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes