Struct reth::providers::ProviderFactory
pub struct ProviderFactory<DB> { /* private fields */ }
Expand description
A common provider that fetches data from a database or static file.
This provider implements most provider or provider factory traits.
Implementations§
§impl<DB> ProviderFactory<DB>
impl<DB> ProviderFactory<DB>
pub fn new(
db: DB,
chain_spec: Arc<ChainSpec>,
static_file_provider: StaticFileProvider,
) -> ProviderFactory<DB>
pub fn new( db: DB, chain_spec: Arc<ChainSpec>, static_file_provider: StaticFileProvider, ) -> ProviderFactory<DB>
Create new database provider factory.
pub fn with_static_files_metrics(self) -> ProviderFactory<DB>
pub fn with_static_files_metrics(self) -> ProviderFactory<DB>
Enables metrics on the static file provider.
pub fn with_prune_modes(self, prune_modes: PruneModes) -> ProviderFactory<DB>
pub fn with_prune_modes(self, prune_modes: PruneModes) -> ProviderFactory<DB>
Sets the pruning configuration for an existing ProviderFactory
.
§impl ProviderFactory<DatabaseEnv>
impl ProviderFactory<DatabaseEnv>
pub fn new_with_database_path<P>(
path: P,
chain_spec: Arc<ChainSpec>,
args: DatabaseArguments,
static_file_provider: StaticFileProvider,
) -> Result<ProviderFactory<DatabaseEnv>, RethError>
pub fn new_with_database_path<P>( path: P, chain_spec: Arc<ChainSpec>, args: DatabaseArguments, static_file_provider: StaticFileProvider, ) -> Result<ProviderFactory<DatabaseEnv>, RethError>
Create new database provider by passing a path. ProviderFactory
will own the database
instance.
§impl<DB> ProviderFactory<DB>where
DB: Database,
impl<DB> ProviderFactory<DB>where
DB: Database,
pub fn provider(
&self,
) -> Result<DatabaseProvider<<DB as Database>::TX>, ProviderError>
pub fn provider( &self, ) -> Result<DatabaseProvider<<DB as Database>::TX>, ProviderError>
Returns a provider with a created DbTx
inside, which allows fetching data from the
database using different types of providers. Example: HeaderProvider
BlockHashReader
. This may fail if the inner read database transaction fails to open.
This sets the PruneModes
to None
, because they should only be relevant for writing
data.
pub fn provider_rw(&self) -> Result<DatabaseProviderRW<DB>, ProviderError>
pub fn provider_rw(&self) -> Result<DatabaseProviderRW<DB>, ProviderError>
Returns a provider with a created DbTxMut
inside, which allows fetching and updating
data from the database using different types of providers. Example: HeaderProvider
BlockHashReader
. This may fail if the inner read/write database transaction fails to
open.
pub fn latest(&self) -> Result<Box<dyn StateProvider>, ProviderError>
pub fn latest(&self) -> Result<Box<dyn StateProvider>, ProviderError>
State provider for latest block
pub fn history_by_block_number(
&self,
block_number: u64,
) -> Result<Box<dyn StateProvider>, ProviderError>
pub fn history_by_block_number( &self, block_number: u64, ) -> Result<Box<dyn StateProvider>, ProviderError>
Storage provider for state at that given block
pub fn history_by_block_hash(
&self,
block_hash: FixedBytes<32>,
) -> Result<Box<dyn StateProvider>, ProviderError>
pub fn history_by_block_hash( &self, block_hash: FixedBytes<32>, ) -> Result<Box<dyn StateProvider>, ProviderError>
Storage provider for state at that given block hash
Trait Implementations§
§impl<DB> BlockHashReader for ProviderFactory<DB>where
DB: Database,
impl<DB> BlockHashReader for ProviderFactory<DB>where
DB: Database,
§fn block_hash(
&self,
number: u64,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn block_hash( &self, number: u64, ) -> Result<Option<FixedBytes<32>>, ProviderError>
None
if no block with this number
exists.§fn canonical_hashes_range(
&self,
start: u64,
end: u64,
) -> Result<Vec<FixedBytes<32>>, ProviderError>
fn canonical_hashes_range( &self, start: u64, end: u64, ) -> Result<Vec<FixedBytes<32>>, ProviderError>
§fn convert_block_hash(
&self,
hash_or_number: BlockHashOrNumber,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn convert_block_hash( &self, hash_or_number: BlockHashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>
None
if no block with this number
exists.§impl<DB> BlockNumReader for ProviderFactory<DB>where
DB: Database,
impl<DB> BlockNumReader for ProviderFactory<DB>where
DB: Database,
§fn chain_info(&self) -> Result<ChainInfo, ProviderError>
fn chain_info(&self) -> Result<ChainInfo, ProviderError>
§fn best_block_number(&self) -> Result<u64, ProviderError>
fn best_block_number(&self) -> Result<u64, ProviderError>
§fn last_block_number(&self) -> Result<u64, ProviderError>
fn last_block_number(&self) -> Result<u64, ProviderError>
§fn block_number(
&self,
hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>
fn block_number( &self, hash: FixedBytes<32>, ) -> Result<Option<u64>, ProviderError>
BlockNumber
for the given hash. Returns None
if no block with this hash exists.§fn convert_hash_or_number(
&self,
id: BlockHashOrNumber,
) -> Result<Option<u64>, ProviderError>
fn convert_hash_or_number( &self, id: BlockHashOrNumber, ) -> Result<Option<u64>, ProviderError>
BlockHashOrNumber
. Returns None
if no block with
this hash exists. If the BlockHashOrNumber
is a Number
, it is returned as is.§fn convert_number(
&self,
id: BlockHashOrNumber,
) -> Result<Option<FixedBytes<32>>, ProviderError>
fn convert_number( &self, id: BlockHashOrNumber, ) -> Result<Option<FixedBytes<32>>, ProviderError>
BlockHashOrNumber
. Returns None
if no block with this
number exists. If the BlockHashOrNumber
is a Hash
, it is returned as is.§impl<DB> BlockReader for ProviderFactory<DB>where
DB: Database,
impl<DB> BlockReader for ProviderFactory<DB>where
DB: Database,
§fn find_block_by_hash(
&self,
hash: FixedBytes<32>,
source: BlockSource,
) -> Result<Option<Block>, ProviderError>
fn find_block_by_hash( &self, hash: FixedBytes<32>, source: BlockSource, ) -> Result<Option<Block>, ProviderError>
§fn block(&self, id: BlockHashOrNumber) -> Result<Option<Block>, ProviderError>
fn block(&self, id: BlockHashOrNumber) -> Result<Option<Block>, ProviderError>
§fn pending_block(&self) -> Result<Option<SealedBlock>, ProviderError>
fn pending_block(&self) -> Result<Option<SealedBlock>, ProviderError>
§fn pending_block_with_senders(
&self,
) -> Result<Option<SealedBlockWithSenders>, ProviderError>
fn pending_block_with_senders( &self, ) -> Result<Option<SealedBlockWithSenders>, ProviderError>
§fn pending_block_and_receipts(
&self,
) -> Result<Option<(SealedBlock, Vec<Receipt>)>, ProviderError>
fn pending_block_and_receipts( &self, ) -> Result<Option<(SealedBlock, Vec<Receipt>)>, ProviderError>
§fn ommers(
&self,
id: BlockHashOrNumber,
) -> Result<Option<Vec<Header>>, ProviderError>
fn ommers( &self, id: BlockHashOrNumber, ) -> Result<Option<Vec<Header>>, ProviderError>
§fn block_body_indices(
&self,
number: u64,
) -> Result<Option<StoredBlockBodyIndices>, ProviderError>
fn block_body_indices( &self, number: u64, ) -> Result<Option<StoredBlockBodyIndices>, ProviderError>
§fn block_with_senders(
&self,
id: BlockHashOrNumber,
transaction_kind: TransactionVariant,
) -> Result<Option<BlockWithSenders>, ProviderError>
fn block_with_senders( &self, id: BlockHashOrNumber, transaction_kind: TransactionVariant, ) -> Result<Option<BlockWithSenders>, ProviderError>
§fn sealed_block_with_senders(
&self,
id: BlockHashOrNumber,
transaction_kind: TransactionVariant,
) -> Result<Option<SealedBlockWithSenders>, ProviderError>
fn sealed_block_with_senders( &self, id: BlockHashOrNumber, transaction_kind: TransactionVariant, ) -> Result<Option<SealedBlockWithSenders>, ProviderError>
§fn block_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<Block>, ProviderError>
fn block_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<Block>, ProviderError>
§fn block_with_senders_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<BlockWithSenders>, ProviderError>
fn block_with_senders_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<BlockWithSenders>, ProviderError>
§fn sealed_block_with_senders_range(
&self,
range: RangeInclusive<u64>,
) -> Result<Vec<SealedBlockWithSenders>, ProviderError>
fn sealed_block_with_senders_range( &self, range: RangeInclusive<u64>, ) -> Result<Vec<SealedBlockWithSenders>, ProviderError>
§fn block_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<Block>, ProviderError>
fn block_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<Block>, ProviderError>
§fn block_by_number(&self, num: u64) -> Result<Option<Block>, ProviderError>
fn block_by_number(&self, num: u64) -> Result<Option<Block>, ProviderError>
§impl<DB> ChainSpecProvider for ProviderFactory<DB>
impl<DB> ChainSpecProvider for ProviderFactory<DB>
§fn chain_spec(&self) -> Arc<ChainSpec>
fn chain_spec(&self) -> Arc<ChainSpec>
Arc
to the chainspec.§impl<DB> Clone for ProviderFactory<DB>
impl<DB> Clone for ProviderFactory<DB>
§fn clone(&self) -> ProviderFactory<DB>
fn clone(&self) -> ProviderFactory<DB>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl<DB> DatabaseProviderFactory<DB> for ProviderFactory<DB>where
DB: Database,
impl<DB> DatabaseProviderFactory<DB> for ProviderFactory<DB>where
DB: Database,
§fn database_provider_ro(
&self,
) -> Result<DatabaseProvider<<DB as Database>::TX>, ProviderError>
fn database_provider_ro( &self, ) -> Result<DatabaseProvider<<DB as Database>::TX>, ProviderError>
§impl<DB> Debug for ProviderFactory<DB>where
DB: Debug,
impl<DB> Debug for ProviderFactory<DB>where
DB: Debug,
§impl<DB> EvmEnvProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> EvmEnvProvider for ProviderFactory<DB>where
DB: Database,
§fn fill_env_at<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
block_env: &mut BlockEnv,
at: BlockHashOrNumber,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
fn fill_env_at<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
block_env: &mut BlockEnv,
at: BlockHashOrNumber,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
CfgEnvWithHandlerCfg
and BlockEnv fields with values specific to the given
BlockHashOrNumber.§fn fill_env_with_header<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
block_env: &mut BlockEnv,
header: &Header,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
fn fill_env_with_header<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
block_env: &mut BlockEnv,
header: &Header,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
§fn fill_cfg_env_at<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
at: BlockHashOrNumber,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
fn fill_cfg_env_at<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
at: BlockHashOrNumber,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
CfgEnvWithHandlerCfg
fields with values specific to the given
BlockHashOrNumber.§fn fill_cfg_env_with_header<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
header: &Header,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
fn fill_cfg_env_with_header<EvmConfig>(
&self,
cfg: &mut CfgEnvWithHandlerCfg,
header: &Header,
evm_config: EvmConfig,
) -> Result<(), ProviderError>where
EvmConfig: ConfigureEvmEnv,
CfgEnvWithHandlerCfg
fields with values specific to the given Header.§fn env_with_header<EvmConfig>(
&self,
header: &Header,
evm_config: EvmConfig,
) -> Result<(CfgEnvWithHandlerCfg, BlockEnv), ProviderError>where
EvmConfig: ConfigureEvmEnv,
fn env_with_header<EvmConfig>(
&self,
header: &Header,
evm_config: EvmConfig,
) -> Result<(CfgEnvWithHandlerCfg, BlockEnv), ProviderError>where
EvmConfig: ConfigureEvmEnv,
CfgEnvWithHandlerCfg
and BlockEnv fields with values specific to the
given Header.§impl<DB> HeaderProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> HeaderProvider for ProviderFactory<DB>where
DB: Database,
§fn header(
&self,
block_hash: &FixedBytes<32>,
) -> Result<Option<Header>, ProviderError>
fn header( &self, block_hash: &FixedBytes<32>, ) -> Result<Option<Header>, ProviderError>
§fn header_by_number(&self, num: u64) -> Result<Option<Header>, ProviderError>
fn header_by_number(&self, num: u64) -> Result<Option<Header>, ProviderError>
§fn header_td(
&self,
hash: &FixedBytes<32>,
) -> Result<Option<Uint<256, 4>>, ProviderError>
fn header_td( &self, hash: &FixedBytes<32>, ) -> Result<Option<Uint<256, 4>>, ProviderError>
§fn header_td_by_number(
&self,
number: u64,
) -> Result<Option<Uint<256, 4>>, ProviderError>
fn header_td_by_number( &self, number: u64, ) -> Result<Option<Uint<256, 4>>, ProviderError>
§fn headers_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Header>, ProviderError>
fn headers_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Header>, ProviderError>
§fn sealed_header(
&self,
number: u64,
) -> Result<Option<SealedHeader>, ProviderError>
fn sealed_header( &self, number: u64, ) -> Result<Option<SealedHeader>, ProviderError>
§fn sealed_headers_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<SealedHeader>, ProviderError>
fn sealed_headers_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<SealedHeader>, ProviderError>
§fn sealed_headers_while(
&self,
range: impl RangeBounds<u64>,
predicate: impl FnMut(&SealedHeader) -> bool,
) -> Result<Vec<SealedHeader>, ProviderError>
fn sealed_headers_while( &self, range: impl RangeBounds<u64>, predicate: impl FnMut(&SealedHeader) -> bool, ) -> Result<Vec<SealedHeader>, ProviderError>
predicate
returns true
or the range is exhausted.§fn is_known(&self, block_hash: &FixedBytes<32>) -> Result<bool, ProviderError>
fn is_known(&self, block_hash: &FixedBytes<32>) -> Result<bool, ProviderError>
§fn header_by_hash_or_number(
&self,
hash_or_num: BlockHashOrNumber,
) -> Result<Option<Header>, ProviderError>
fn header_by_hash_or_number( &self, hash_or_num: BlockHashOrNumber, ) -> Result<Option<Header>, ProviderError>
§impl<DB> HeaderSyncGapProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> HeaderSyncGapProvider for ProviderFactory<DB>where
DB: Database,
§fn sync_gap(
&self,
tip: Receiver<FixedBytes<32>>,
highest_uninterrupted_block: u64,
) -> Result<HeaderSyncGap, ProviderError>
fn sync_gap( &self, tip: Receiver<FixedBytes<32>>, highest_uninterrupted_block: u64, ) -> Result<HeaderSyncGap, ProviderError>
§impl<DB> PruneCheckpointReader for ProviderFactory<DB>where
DB: Database,
impl<DB> PruneCheckpointReader for ProviderFactory<DB>where
DB: Database,
§fn get_prune_checkpoint(
&self,
segment: PruneSegment,
) -> Result<Option<PruneCheckpoint>, ProviderError>
fn get_prune_checkpoint( &self, segment: PruneSegment, ) -> Result<Option<PruneCheckpoint>, ProviderError>
§impl<DB> ReceiptProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> ReceiptProvider for ProviderFactory<DB>where
DB: Database,
§fn receipt(&self, id: u64) -> Result<Option<Receipt>, ProviderError>
fn receipt(&self, id: u64) -> Result<Option<Receipt>, ProviderError>
§fn receipt_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<Receipt>, ProviderError>
fn receipt_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<Receipt>, ProviderError>
§fn receipts_by_block(
&self,
block: BlockHashOrNumber,
) -> Result<Option<Vec<Receipt>>, ProviderError>
fn receipts_by_block( &self, block: BlockHashOrNumber, ) -> Result<Option<Vec<Receipt>>, ProviderError>
§fn receipts_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Receipt>, ProviderError>
fn receipts_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Receipt>, ProviderError>
§impl<DB> RequestsProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> RequestsProvider for ProviderFactory<DB>where
DB: Database,
§fn requests_by_block(
&self,
id: BlockHashOrNumber,
timestamp: u64,
) -> Result<Option<Requests>, ProviderError>
fn requests_by_block( &self, id: BlockHashOrNumber, timestamp: u64, ) -> Result<Option<Requests>, ProviderError>
§impl<DB> StageCheckpointReader for ProviderFactory<DB>where
DB: Database,
impl<DB> StageCheckpointReader for ProviderFactory<DB>where
DB: Database,
§fn get_stage_checkpoint(
&self,
id: StageId,
) -> Result<Option<StageCheckpoint>, ProviderError>
fn get_stage_checkpoint( &self, id: StageId, ) -> Result<Option<StageCheckpoint>, ProviderError>
§fn get_stage_checkpoint_progress(
&self,
id: StageId,
) -> Result<Option<Vec<u8>>, ProviderError>
fn get_stage_checkpoint_progress( &self, id: StageId, ) -> Result<Option<Vec<u8>>, ProviderError>
§impl<DB> StaticFileProviderFactory for ProviderFactory<DB>
impl<DB> StaticFileProviderFactory for ProviderFactory<DB>
§fn static_file_provider(&self) -> StaticFileProvider
fn static_file_provider(&self) -> StaticFileProvider
Returns static file provider
§impl<DB> TransactionsProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> TransactionsProvider for ProviderFactory<DB>where
DB: Database,
§fn transaction_id(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<u64>, ProviderError>
fn transaction_id( &self, tx_hash: FixedBytes<32>, ) -> Result<Option<u64>, ProviderError>
§fn transaction_by_id(
&self,
id: u64,
) -> Result<Option<TransactionSigned>, ProviderError>
fn transaction_by_id( &self, id: u64, ) -> Result<Option<TransactionSigned>, ProviderError>
§fn transaction_by_id_no_hash(
&self,
id: u64,
) -> Result<Option<TransactionSignedNoHash>, ProviderError>
fn transaction_by_id_no_hash( &self, id: u64, ) -> Result<Option<TransactionSignedNoHash>, ProviderError>
§fn transaction_by_hash(
&self,
hash: FixedBytes<32>,
) -> Result<Option<TransactionSigned>, ProviderError>
fn transaction_by_hash( &self, hash: FixedBytes<32>, ) -> Result<Option<TransactionSigned>, ProviderError>
§fn transaction_by_hash_with_meta(
&self,
tx_hash: FixedBytes<32>,
) -> Result<Option<(TransactionSigned, TransactionMeta)>, ProviderError>
fn transaction_by_hash_with_meta( &self, tx_hash: FixedBytes<32>, ) -> Result<Option<(TransactionSigned, TransactionMeta)>, ProviderError>
§fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
fn transaction_block(&self, id: u64) -> Result<Option<u64>, ProviderError>
§fn transactions_by_block(
&self,
id: BlockHashOrNumber,
) -> Result<Option<Vec<TransactionSigned>>, ProviderError>
fn transactions_by_block( &self, id: BlockHashOrNumber, ) -> Result<Option<Vec<TransactionSigned>>, ProviderError>
§fn transactions_by_block_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Vec<TransactionSigned>>, ProviderError>
fn transactions_by_block_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Vec<TransactionSigned>>, ProviderError>
§fn transactions_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<TransactionSignedNoHash>, ProviderError>
fn transactions_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<TransactionSignedNoHash>, ProviderError>
§fn senders_by_tx_range(
&self,
range: impl RangeBounds<u64>,
) -> Result<Vec<Address>, ProviderError>
fn senders_by_tx_range( &self, range: impl RangeBounds<u64>, ) -> Result<Vec<Address>, ProviderError>
§fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
fn transaction_sender(&self, id: u64) -> Result<Option<Address>, ProviderError>
§impl<DB> WithdrawalsProvider for ProviderFactory<DB>where
DB: Database,
impl<DB> WithdrawalsProvider for ProviderFactory<DB>where
DB: Database,
§fn withdrawals_by_block(
&self,
id: BlockHashOrNumber,
timestamp: u64,
) -> Result<Option<Withdrawals>, ProviderError>
fn withdrawals_by_block( &self, id: BlockHashOrNumber, timestamp: u64, ) -> Result<Option<Withdrawals>, ProviderError>
§fn latest_withdrawal(&self) -> Result<Option<Withdrawal>, ProviderError>
fn latest_withdrawal(&self) -> Result<Option<Withdrawal>, ProviderError>
Auto Trait Implementations§
impl<DB> Freeze for ProviderFactory<DB>
impl<DB> !RefUnwindSafe for ProviderFactory<DB>
impl<DB> Send for ProviderFactory<DB>
impl<DB> Sync for ProviderFactory<DB>
impl<DB> Unpin for ProviderFactory<DB>
impl<DB> !UnwindSafe for ProviderFactory<DB>
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<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> 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: 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: 128 bytes