pub struct TestState<Cache, DataStore: WalletTest, Network> { /* private fields */ }
test-dependencies
only.Expand description
The state for a zcash_client_backend
test.
Implementations§
Source§impl<Cache, DataStore: WalletTest, Network> TestState<Cache, DataStore, Network>
impl<Cache, DataStore: WalletTest, Network> TestState<Cache, DataStore, Network>
Sourcepub fn wallet(&self) -> &DataStore
pub fn wallet(&self) -> &DataStore
Exposes an immutable reference to the test’s DataStore
.
Sourcepub fn wallet_mut(&mut self) -> &mut DataStore
pub fn wallet_mut(&mut self) -> &mut DataStore
Exposes a mutable reference to the test’s DataStore
.
Source§impl<Cache, DataStore: WalletTest, Network: Parameters> TestState<Cache, DataStore, Network>
impl<Cache, DataStore: WalletTest, Network: Parameters> TestState<Cache, DataStore, Network>
Sourcepub fn sapling_activation_height(&self) -> BlockHeight
pub fn sapling_activation_height(&self) -> BlockHeight
Convenience method for obtaining the Sapling activation height for the network under test.
Sourcepub fn nu5_activation_height(&self) -> BlockHeight
pub fn nu5_activation_height(&self) -> BlockHeight
Convenience method for obtaining the NU5 activation height for the network under test.
Sourcepub fn test_account(
&self,
) -> Option<&TestAccount<<DataStore as WalletRead>::Account>>
pub fn test_account( &self, ) -> Option<&TestAccount<<DataStore as WalletRead>::Account>>
Returns a reference to the test account, if one was configured.
Sourcepub fn test_account_sapling(&self) -> Option<&DiversifiableFullViewingKey>
pub fn test_account_sapling(&self) -> Option<&DiversifiableFullViewingKey>
Returns the test account’s Sapling DFVK, if one was configured.
Sourcepub fn test_account_orchard(&self) -> Option<&FullViewingKey>
Available on crate feature orchard
only.
pub fn test_account_orchard(&self) -> Option<&FullViewingKey>
orchard
only.Returns the test account’s Orchard FVK, if one was configured.
Source§impl<Cache: TestCache, DataStore, Network> TestState<Cache, DataStore, Network>where
Network: Parameters,
DataStore: WalletTest + WalletWrite,
<Cache::BlockSource as BlockSource>::Error: Debug,
impl<Cache: TestCache, DataStore, Network> TestState<Cache, DataStore, Network>where
Network: Parameters,
DataStore: WalletTest + WalletWrite,
<Cache::BlockSource as BlockSource>::Error: Debug,
Sourcepub fn cache(&self) -> &Cache::BlockSource
Available on crate feature unstable
only.
pub fn cache(&self) -> &Cache::BlockSource
unstable
only.Exposes an immutable reference to the test’s BlockSource
.
Sourcepub fn latest_cached_block(&self) -> Option<&CachedBlock>
pub fn latest_cached_block(&self) -> Option<&CachedBlock>
Returns the cached chain state corresponding to the latest block generated by this
TestState
.
Sourcepub fn generate_next_block<Fvk: TestFvk>(
&mut self,
fvk: &Fvk,
address_type: AddressType,
value: Zatoshis,
) -> (BlockHeight, Cache::InsertResult, Fvk::Nullifier)
pub fn generate_next_block<Fvk: TestFvk>( &mut self, fvk: &Fvk, address_type: AddressType, value: Zatoshis, ) -> (BlockHeight, Cache::InsertResult, Fvk::Nullifier)
Creates a fake block at the expected next height containing a single output of the given value, and inserts it into the cache.
Sourcepub fn generate_next_block_multi<Fvk: TestFvk>(
&mut self,
outputs: &[FakeCompactOutput<Fvk>],
) -> (BlockHeight, Cache::InsertResult, Vec<Fvk::Nullifier>)
pub fn generate_next_block_multi<Fvk: TestFvk>( &mut self, outputs: &[FakeCompactOutput<Fvk>], ) -> (BlockHeight, Cache::InsertResult, Vec<Fvk::Nullifier>)
Creates a fake block at the expected next height containing multiple outputs and inserts it into the cache.
Sourcepub fn generate_empty_block(&mut self) -> (BlockHeight, Cache::InsertResult)
pub fn generate_empty_block(&mut self) -> (BlockHeight, Cache::InsertResult)
Adds an empty block to the cache, advancing the simulated chain height.
Sourcepub fn generate_block_at<Fvk: TestFvk>(
&mut self,
height: BlockHeight,
prev_hash: BlockHash,
outputs: &[FakeCompactOutput<Fvk>],
initial_sapling_tree_size: u32,
initial_orchard_tree_size: u32,
allow_broken_hash_chain: bool,
) -> (Cache::InsertResult, Vec<Fvk::Nullifier>)
pub fn generate_block_at<Fvk: TestFvk>( &mut self, height: BlockHeight, prev_hash: BlockHash, outputs: &[FakeCompactOutput<Fvk>], initial_sapling_tree_size: u32, initial_orchard_tree_size: u32, allow_broken_hash_chain: bool, ) -> (Cache::InsertResult, Vec<Fvk::Nullifier>)
Creates a fake block with the given height and hash containing the requested outputs, and inserts it into the cache.
This generated block will be treated as the latest block, and subsequent calls to
Self::generate_next_block
will build on it.
Sourcepub fn generate_next_block_spending<Fvk: TestFvk>(
&mut self,
fvk: &Fvk,
note: (Fvk::Nullifier, Zatoshis),
to: impl Into<Address>,
value: Zatoshis,
) -> (BlockHeight, Cache::InsertResult)
pub fn generate_next_block_spending<Fvk: TestFvk>( &mut self, fvk: &Fvk, note: (Fvk::Nullifier, Zatoshis), to: impl Into<Address>, value: Zatoshis, ) -> (BlockHeight, Cache::InsertResult)
Creates a fake block at the expected next height spending the given note, and inserts it into the cache.
Sourcepub fn generate_next_block_including(
&mut self,
txid: TxId,
) -> (BlockHeight, Cache::InsertResult)
pub fn generate_next_block_including( &mut self, txid: TxId, ) -> (BlockHeight, Cache::InsertResult)
Creates a fake block at the expected next height containing only the wallet transaction with the given txid, and inserts it into the cache.
This generated block will be treated as the latest block, and subsequent calls to
Self::generate_next_block
(or similar) will build on it.
Sourcepub fn generate_next_block_from_tx(
&mut self,
tx_index: usize,
tx: &Transaction,
) -> (BlockHeight, Cache::InsertResult)
pub fn generate_next_block_from_tx( &mut self, tx_index: usize, tx: &Transaction, ) -> (BlockHeight, Cache::InsertResult)
Creates a fake block at the expected next height containing only the given transaction, and inserts it into the cache.
This generated block will be treated as the latest block, and subsequent calls to
Self::generate_next_block
will build on it.
Sourcepub fn truncate_to_height(&mut self, height: BlockHeight)
pub fn truncate_to_height(&mut self, height: BlockHeight)
Truncates the test wallet and block cache to the specified height, discarding all data from blocks at heights greater than the specified height, excluding transaction data that may not be recoverable from the chain.
Sourcepub fn truncate_to_height_retaining_cache(&mut self, height: BlockHeight)
pub fn truncate_to_height_retaining_cache(&mut self, height: BlockHeight)
Truncates the test wallet to the specified height, and resets the cache’s latest block height but does not truncate the block cache. This is useful for circumstances when you want to re-scan a set of cached blocks.
Source§impl<Cache, DbT, ParamsT> TestState<Cache, DbT, ParamsT>where
Cache: TestCache,
<Cache::BlockSource as BlockSource>::Error: Debug,
ParamsT: Parameters + Send + 'static,
DbT: InputSource + WalletTest + WalletWrite + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: Debug + ConditionallySelectable + Default + Send + 'static,
impl<Cache, DbT, ParamsT> TestState<Cache, DbT, ParamsT>where
Cache: TestCache,
<Cache::BlockSource as BlockSource>::Error: Debug,
ParamsT: Parameters + Send + 'static,
DbT: InputSource + WalletTest + WalletWrite + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: Debug + ConditionallySelectable + Default + Send + 'static,
Sourcepub fn scan_cached_blocks(
&mut self,
from_height: BlockHeight,
limit: usize,
) -> ScanSummary
pub fn scan_cached_blocks( &mut self, from_height: BlockHeight, limit: usize, ) -> ScanSummary
Invokes scan_cached_blocks
with the given arguments, expecting success.
Sourcepub fn try_scan_cached_blocks(
&mut self,
from_height: BlockHeight,
limit: usize,
) -> Result<ScanSummary, Error<<DbT as WalletRead>::Error, <Cache::BlockSource as BlockSource>::Error>>
pub fn try_scan_cached_blocks( &mut self, from_height: BlockHeight, limit: usize, ) -> Result<ScanSummary, Error<<DbT as WalletRead>::Error, <Cache::BlockSource as BlockSource>::Error>>
Invokes scan_cached_blocks
with the given arguments.
Sourcepub fn put_subtree_roots(
&mut self,
sapling_start_index: u64,
sapling_roots: &[CommitmentTreeRoot<Node>],
orchard_start_index: u64,
orchard_roots: &[CommitmentTreeRoot<MerkleHashOrchard>],
) -> Result<(), ShardTreeError<<DbT as WalletCommitmentTrees>::Error>>
pub fn put_subtree_roots( &mut self, sapling_start_index: u64, sapling_roots: &[CommitmentTreeRoot<Node>], orchard_start_index: u64, orchard_roots: &[CommitmentTreeRoot<MerkleHashOrchard>], ) -> Result<(), ShardTreeError<<DbT as WalletCommitmentTrees>::Error>>
Insert shard roots for both trees.
Source§impl<Cache, DbT, ParamsT, AccountIdT, ErrT> TestState<Cache, DbT, ParamsT>where
ParamsT: Parameters + Send + 'static,
AccountIdT: Debug + Eq + Hash,
ErrT: Debug,
DbT: InputSource<AccountId = AccountIdT, Error = ErrT> + WalletTest + WalletWrite<AccountId = AccountIdT, Error = ErrT> + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: ConditionallySelectable + Default + Send + 'static,
impl<Cache, DbT, ParamsT, AccountIdT, ErrT> TestState<Cache, DbT, ParamsT>where
ParamsT: Parameters + Send + 'static,
AccountIdT: Debug + Eq + Hash,
ErrT: Debug,
DbT: InputSource<AccountId = AccountIdT, Error = ErrT> + WalletTest + WalletWrite<AccountId = AccountIdT, Error = ErrT> + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: ConditionallySelectable + Default + Send + 'static,
pub fn create_standard_transaction( &mut self, from_account: &TestAccount<DbT::Account>, to: ZcashAddress, value: Zatoshis, ) -> Result<NonEmpty<TxId>, TransferErrT<DbT, GreedyInputSelector<DbT>, MultiOutputChangeStrategy<DbT>>>
Sourcepub fn spend<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
usk: &UnifiedSpendingKey,
request: TransactionRequest,
ovk_policy: OvkPolicy,
min_confirmations: NonZeroU32,
) -> Result<NonEmpty<TxId>, TransferErrT<DbT, InputsT, ChangeT>>where
InputsT: InputSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
pub fn spend<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
usk: &UnifiedSpendingKey,
request: TransactionRequest,
ovk_policy: OvkPolicy,
min_confirmations: NonZeroU32,
) -> Result<NonEmpty<TxId>, TransferErrT<DbT, InputsT, ChangeT>>where
InputsT: InputSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
Prepares and executes the given zip321::TransactionRequest
in a single step.
Sourcepub fn propose_transfer<InputsT, ChangeT>(
&mut self,
spend_from_account: <DbT as InputSource>::AccountId,
input_selector: &InputsT,
change_strategy: &ChangeT,
request: TransactionRequest,
min_confirmations: NonZeroU32,
) -> Result<Proposal<ChangeT::FeeRule, <DbT as InputSource>::NoteRef>, ProposeTransferErrT<DbT, Infallible, InputsT, ChangeT>>where
InputsT: InputSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
pub fn propose_transfer<InputsT, ChangeT>(
&mut self,
spend_from_account: <DbT as InputSource>::AccountId,
input_selector: &InputsT,
change_strategy: &ChangeT,
request: TransactionRequest,
min_confirmations: NonZeroU32,
) -> Result<Proposal<ChangeT::FeeRule, <DbT as InputSource>::NoteRef>, ProposeTransferErrT<DbT, Infallible, InputsT, ChangeT>>where
InputsT: InputSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
Invokes propose_transfer
with the given arguments.
Sourcepub fn propose_standard_transfer<CommitmentTreeErrT>(
&mut self,
spend_from_account: <DbT as InputSource>::AccountId,
fee_rule: StandardFeeRule,
min_confirmations: NonZeroU32,
to: &Address,
amount: Zatoshis,
memo: Option<MemoBytes>,
change_memo: Option<MemoBytes>,
fallback_change_pool: ShieldedProtocol,
) -> Result<Proposal<StandardFeeRule, <DbT as InputSource>::NoteRef>, ProposeTransferErrT<DbT, CommitmentTreeErrT, GreedyInputSelector<DbT>, SingleOutputChangeStrategy<DbT>>>
pub fn propose_standard_transfer<CommitmentTreeErrT>( &mut self, spend_from_account: <DbT as InputSource>::AccountId, fee_rule: StandardFeeRule, min_confirmations: NonZeroU32, to: &Address, amount: Zatoshis, memo: Option<MemoBytes>, change_memo: Option<MemoBytes>, fallback_change_pool: ShieldedProtocol, ) -> Result<Proposal<StandardFeeRule, <DbT as InputSource>::NoteRef>, ProposeTransferErrT<DbT, CommitmentTreeErrT, GreedyInputSelector<DbT>, SingleOutputChangeStrategy<DbT>>>
Invokes propose_standard_transfer_to_address
with the given arguments.
Sourcepub fn propose_shielding<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
shielding_threshold: Zatoshis,
from_addrs: &[TransparentAddress],
to_account: <InputsT::InputSource as InputSource>::AccountId,
min_confirmations: u32,
) -> Result<Proposal<ChangeT::FeeRule, Infallible>, ProposeShieldingErrT<DbT, Infallible, InputsT, ChangeT>>where
InputsT: ShieldingSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
Available on crate feature transparent-inputs
only.
pub fn propose_shielding<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
shielding_threshold: Zatoshis,
from_addrs: &[TransparentAddress],
to_account: <InputsT::InputSource as InputSource>::AccountId,
min_confirmations: u32,
) -> Result<Proposal<ChangeT::FeeRule, Infallible>, ProposeShieldingErrT<DbT, Infallible, InputsT, ChangeT>>where
InputsT: ShieldingSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
transparent-inputs
only.Invokes propose_shielding
with the given arguments.
Sourcepub fn create_proposed_transactions<InputsErrT, FeeRuleT, ChangeErrT>(
&mut self,
usk: &UnifiedSpendingKey,
ovk_policy: OvkPolicy,
proposal: &Proposal<FeeRuleT, <DbT as InputSource>::NoteRef>,
) -> Result<NonEmpty<TxId>, CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, DbT::NoteRef>>where
FeeRuleT: FeeRule,
pub fn create_proposed_transactions<InputsErrT, FeeRuleT, ChangeErrT>(
&mut self,
usk: &UnifiedSpendingKey,
ovk_policy: OvkPolicy,
proposal: &Proposal<FeeRuleT, <DbT as InputSource>::NoteRef>,
) -> Result<NonEmpty<TxId>, CreateErrT<DbT, InputsErrT, FeeRuleT, ChangeErrT, DbT::NoteRef>>where
FeeRuleT: FeeRule,
Invokes create_proposed_transactions
with the given arguments.
Sourcepub fn shield_transparent_funds<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
shielding_threshold: Zatoshis,
usk: &UnifiedSpendingKey,
from_addrs: &[TransparentAddress],
to_account: <DbT as InputSource>::AccountId,
min_confirmations: u32,
) -> Result<NonEmpty<TxId>, ShieldErrT<DbT, InputsT, ChangeT>>where
InputsT: ShieldingSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
Available on crate feature transparent-inputs
only.
pub fn shield_transparent_funds<InputsT, ChangeT>(
&mut self,
input_selector: &InputsT,
change_strategy: &ChangeT,
shielding_threshold: Zatoshis,
usk: &UnifiedSpendingKey,
from_addrs: &[TransparentAddress],
to_account: <DbT as InputSource>::AccountId,
min_confirmations: u32,
) -> Result<NonEmpty<TxId>, ShieldErrT<DbT, InputsT, ChangeT>>where
InputsT: ShieldingSelector<InputSource = DbT>,
ChangeT: ChangeStrategy<MetaSource = DbT>,
transparent-inputs
only.Invokes shield_transparent_funds
with the given arguments.
Sourcepub fn get_total_balance(&self, account: AccountIdT) -> Zatoshis
pub fn get_total_balance(&self, account: AccountIdT) -> Zatoshis
Returns the total balance in the given account at this point in the test.
Sourcepub fn get_spendable_balance(
&self,
account: AccountIdT,
min_confirmations: u32,
) -> Zatoshis
pub fn get_spendable_balance( &self, account: AccountIdT, min_confirmations: u32, ) -> Zatoshis
Returns the balance in the given account that is spendable with the given number of confirmations at this point in the test.
Sourcepub fn get_pending_shielded_balance(
&self,
account: AccountIdT,
min_confirmations: u32,
) -> Zatoshis
pub fn get_pending_shielded_balance( &self, account: AccountIdT, min_confirmations: u32, ) -> Zatoshis
Returns the balance in the given account that is detected but not yet spendable with the given number of confirmations at this point in the test.
Sourcepub fn get_pending_change(
&self,
account: AccountIdT,
min_confirmations: u32,
) -> Zatoshis
pub fn get_pending_change( &self, account: AccountIdT, min_confirmations: u32, ) -> Zatoshis
Returns the amount of change in the given account that is not yet spendable with the given number of confirmations at this point in the test.
Sourcepub fn get_wallet_summary(
&self,
min_confirmations: u32,
) -> Option<WalletSummary<AccountIdT>>
pub fn get_wallet_summary( &self, min_confirmations: u32, ) -> Option<WalletSummary<AccountIdT>>
Returns a summary of the wallet at this point in the test.
Source§impl<Cache, DbT, ParamsT, AccountIdT, ErrT> TestState<Cache, DbT, ParamsT>where
ParamsT: Parameters + Send + 'static,
AccountIdT: Eq + Hash,
ErrT: Debug,
DbT: InputSource<AccountId = AccountIdT, Error = ErrT> + WalletTest + WalletWrite<AccountId = AccountIdT, Error = ErrT> + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: ConditionallySelectable + Default + Send + 'static,
impl<Cache, DbT, ParamsT, AccountIdT, ErrT> TestState<Cache, DbT, ParamsT>where
ParamsT: Parameters + Send + 'static,
AccountIdT: Eq + Hash,
ErrT: Debug,
DbT: InputSource<AccountId = AccountIdT, Error = ErrT> + WalletTest + WalletWrite<AccountId = AccountIdT, Error = ErrT> + WalletCommitmentTrees,
<DbT as WalletRead>::AccountId: ConditionallySelectable + Default + Send + 'static,
Sourcepub fn get_tx_from_history(
&self,
txid: TxId,
) -> Result<Option<TransactionSummary<AccountIdT>>, ErrT>
pub fn get_tx_from_history( &self, txid: TxId, ) -> Result<Option<TransactionSummary<AccountIdT>>, ErrT>
Returns a transaction from the history.
Source§impl<Cache, DbT: WalletRead + Reset> TestState<Cache, DbT, LocalNetwork>
impl<Cache, DbT: WalletRead + Reset> TestState<Cache, DbT, LocalNetwork>
Sourcepub fn reset(&mut self) -> DbT::Handle
pub fn reset(&mut self) -> DbT::Handle
Resets the wallet using a new wallet database but with the same cache of blocks, and returns the old wallet database file.
This does not recreate accounts, nor does it rescan the cached blocks.
The resulting wallet has no test account.
Before using any generate_*
method on the reset state, call reset_latest_cached_block()
.
Auto Trait Implementations§
impl<Cache, DataStore, Network> Freeze for TestState<Cache, DataStore, Network>
impl<Cache, DataStore, Network> RefUnwindSafe for TestState<Cache, DataStore, Network>where
Cache: RefUnwindSafe,
DataStore: RefUnwindSafe,
Network: RefUnwindSafe,
<DataStore as WalletRead>::Account: RefUnwindSafe,
impl<Cache, DataStore, Network> Send for TestState<Cache, DataStore, Network>
impl<Cache, DataStore, Network> Sync for TestState<Cache, DataStore, Network>
impl<Cache, DataStore, Network> Unpin for TestState<Cache, DataStore, Network>
impl<Cache, DataStore, Network> UnwindSafe for TestState<Cache, DataStore, Network>where
Cache: UnwindSafe,
DataStore: UnwindSafe,
Network: UnwindSafe,
<DataStore as WalletRead>::Account: UnwindSafe,
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>
§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> 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.