Enum zebra_chain::transaction::Transaction
source · [−]pub enum Transaction {
V1 {
inputs: Vec<Input>,
outputs: Vec<Output>,
lock_time: LockTime,
},
V2 {
inputs: Vec<Input>,
outputs: Vec<Output>,
lock_time: LockTime,
joinsplit_data: Option<JoinSplitData<Bctv14Proof>>,
},
V3 {
inputs: Vec<Input>,
outputs: Vec<Output>,
lock_time: LockTime,
expiry_height: Height,
joinsplit_data: Option<JoinSplitData<Bctv14Proof>>,
},
V4 {
inputs: Vec<Input>,
outputs: Vec<Output>,
lock_time: LockTime,
expiry_height: Height,
joinsplit_data: Option<JoinSplitData<Groth16Proof>>,
sapling_shielded_data: Option<ShieldedData<PerSpendAnchor>>,
},
V5 {
network_upgrade: NetworkUpgrade,
lock_time: LockTime,
expiry_height: Height,
inputs: Vec<Input>,
outputs: Vec<Output>,
sapling_shielded_data: Option<ShieldedData<SharedAnchor>>,
orchard_shielded_data: Option<ShieldedData>,
},
}
Expand description
A Zcash transaction.
A transaction is an encoded data structure that facilitates the transfer of value between two public key addresses on the Zcash ecosystem. Everything is designed to ensure that transactions can be created, propagated on the network, validated, and finally added to the global ledger of transactions (the blockchain).
Zcash has a number of different transaction formats. They are represented internally by different enum variants. Because we checkpoint on Canopy activation, we do not validate any pre-Sapling transaction types.
Variants
V1
Fields
lock_time: LockTime
The earliest time or block height that this transaction can be added to the chain.
A fully transparent transaction (version = 1
).
V2
Fields
lock_time: LockTime
The earliest time or block height that this transaction can be added to the chain.
joinsplit_data: Option<JoinSplitData<Bctv14Proof>>
The JoinSplit data for this transaction, if any.
A Sprout transaction (version = 2
).
V3
Fields
lock_time: LockTime
The earliest time or block height that this transaction can be added to the chain.
expiry_height: Height
The latest block height that this transaction can be added to the chain.
joinsplit_data: Option<JoinSplitData<Bctv14Proof>>
The JoinSplit data for this transaction, if any.
An Overwinter transaction (version = 3
).
V4
Fields
lock_time: LockTime
The earliest time or block height that this transaction can be added to the chain.
expiry_height: Height
The latest block height that this transaction can be added to the chain.
joinsplit_data: Option<JoinSplitData<Groth16Proof>>
The JoinSplit data for this transaction, if any.
sapling_shielded_data: Option<ShieldedData<PerSpendAnchor>>
The sapling shielded data for this transaction, if any.
A Sapling transaction (version = 4
).
V5
Fields
network_upgrade: NetworkUpgrade
The Network Upgrade for this transaction.
Derived from the ConsensusBranchId field.
lock_time: LockTime
The earliest time or block height that this transaction can be added to the chain.
expiry_height: Height
The latest block height that this transaction can be added to the chain.
sapling_shielded_data: Option<ShieldedData<SharedAnchor>>
The sapling shielded data for this transaction, if any.
orchard_shielded_data: Option<ShieldedData>
The orchard data for this transaction, if any.
A version = 5
transaction , which supports Orchard, Sapling, and transparent, but not Sprout.
Implementations
sourceimpl Transaction
impl Transaction
sourcepub fn v1_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
pub fn v1_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
Generate a proptest strategy for V1 Transactions
sourcepub fn v2_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
pub fn v2_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
Generate a proptest strategy for V2 Transactions
sourcepub fn v3_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
pub fn v3_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
Generate a proptest strategy for V3 Transactions
sourcepub fn v4_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
pub fn v4_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
Generate a proptest strategy for V4 Transactions
sourcepub fn v5_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
pub fn v5_strategy(ledger_state: LedgerState) -> BoxedStrategy<Self>
Generate a proptest strategy for V5 Transactions
sourcepub fn vec_strategy(
ledger_state: LedgerState,
len: usize
) -> BoxedStrategy<Vec<Arc<Self>>>
pub fn vec_strategy(
ledger_state: LedgerState,
len: usize
) -> BoxedStrategy<Vec<Arc<Self>>>
Proptest Strategy for creating a Vector of transactions where the first transaction is always the only coinbase transaction
sourcepub fn for_each_value_mut<F>(&mut self, f: F) where
F: FnMut(&mut Amount<NonNegative>),
pub fn for_each_value_mut<F>(&mut self, f: F) where
F: FnMut(&mut Amount<NonNegative>),
Apply f
to the transparent output, v_sprout_new
, and v_sprout_old
values
in this transaction, regardless of version.
sourcepub fn for_each_value_balance_mut<F>(&mut self, f: F) where
F: FnMut(&mut Amount<NegativeAllowed>),
pub fn for_each_value_balance_mut<F>(&mut self, f: F) where
F: FnMut(&mut Amount<NegativeAllowed>),
Apply f
to the sapling value balance and orchard value balance
in this transaction, regardless of version.
sourcepub fn fix_overflow(&mut self)
pub fn fix_overflow(&mut self)
Fixup transparent values and shielded value balances, so that transaction and chain value pools won’t overflow MAX_MONEY.
These fixes are applied to coinbase and non-coinbase transactions.
sourcepub fn fix_chain_value_pools(
&mut self,
chain_value_pools: ValueBalance<NonNegative>,
outputs: &HashMap<OutPoint, Output>
) -> Result<(Amount<NonNegative>, ValueBalance<NonNegative>), ValueBalanceError>
pub fn fix_chain_value_pools(
&mut self,
chain_value_pools: ValueBalance<NonNegative>,
outputs: &HashMap<OutPoint, Output>
) -> Result<(Amount<NonNegative>, ValueBalance<NonNegative>), ValueBalanceError>
Fixup transparent values and shielded value balances, so that this transaction passes the “non-negative chain value pool” checks. (These checks use the sum of unspent outputs for each transparent and shielded pool.)
These fixes are applied to coinbase and non-coinbase transactions.
chain_value_pools
contains the chain value pool balances,
as of the previous transaction in this block
(or the last transaction in the previous block).
outputs
must contain all the transparent::Output
s spent in this transaction.
Currently, these fixes almost always leave some remaining value in each transparent and shielded chain value pool.
Before fixing the chain value balances, this method calls fix_overflow
to make sure that transaction and chain value pools don’t overflow MAX_MONEY.
After fixing the chain value balances, this method calls fix_remaining_value
to fix the remaining value in the transaction value pool.
Returns the remaining transaction value, and the updated chain value balances.
Panics
If any spent transparent::Output
is missing from
transparent::OutPoint
s.
sourcepub fn fix_remaining_value(
&mut self,
outputs: &HashMap<OutPoint, Output>
) -> Result<Amount<NonNegative>, ValueBalanceError>
pub fn fix_remaining_value(
&mut self,
outputs: &HashMap<OutPoint, Output>
) -> Result<Amount<NonNegative>, ValueBalanceError>
Fixup non-coinbase transparent values and shielded value balances, so that this transaction passes the “non-negative remaining transaction value” check. (This check uses the sum of inputs minus outputs.)
Returns the remaining transaction value.
outputs
must contain all the transparent::Output
s spent in this transaction.
Currently, these fixes almost always leave some remaining value in the transaction value pool.
Panics
If any spent transparent::Output
is missing from
transparent::OutPoint
s.
sourceimpl Transaction
impl Transaction
sourcepub fn hash(&self) -> Hash
pub fn hash(&self) -> Hash
Compute the hash (mined transaction ID) of this transaction.
The hash uniquely identifies mined v5 transactions, and all v1-v4 transactions, whether mined or unmined.
sourcepub fn unmined_id(&self) -> UnminedTxId
pub fn unmined_id(&self) -> UnminedTxId
Compute the unmined transaction ID of this transaction.
This ID uniquely identifies unmined transactions, regardless of version.
sourcepub fn sighash(
&self,
network_upgrade: NetworkUpgrade,
hash_type: HashType,
all_previous_outputs: &[Output],
input: Option<usize>
) -> SigHash
pub fn sighash(
&self,
network_upgrade: NetworkUpgrade,
hash_type: HashType,
all_previous_outputs: &[Output],
input: Option<usize>
) -> SigHash
Calculate the sighash for the current transaction
Details
The input
argument indicates the transparent Input for which we are
producing a sighash. It is comprised of the index identifying the
transparent::Input within the transaction and the transparent::Output
representing the UTXO being spent by that input.
Panics
- if passed in any NetworkUpgrade from before NetworkUpgrade::Overwinter
- if called on a v1 or v2 transaction
- if the input index points to a transparent::Input::CoinBase
- if the input index is out of bounds for self.inputs()
sourcepub fn auth_digest(&self) -> Option<AuthDigest>
pub fn auth_digest(&self) -> Option<AuthDigest>
Compute the authorizing data commitment of this transaction as specified in ZIP-244.
Returns None for pre-v5 transactions.
sourcepub fn has_transparent_or_shielded_inputs(&self) -> bool
pub fn has_transparent_or_shielded_inputs(&self) -> bool
Does this transaction have transparent or shielded inputs?
sourcepub fn has_shielded_inputs(&self) -> bool
pub fn has_shielded_inputs(&self) -> bool
Does this transaction have shielded inputs?
See Self::has_transparent_or_shielded_inputs
for details.
sourcepub fn has_transparent_or_shielded_outputs(&self) -> bool
pub fn has_transparent_or_shielded_outputs(&self) -> bool
Does this transaction have transparent or shielded outputs?
sourcepub fn has_shielded_outputs(&self) -> bool
pub fn has_shielded_outputs(&self) -> bool
Does this transaction have shielded outputs?
See Self::has_transparent_or_shielded_outputs
for details.
sourcepub fn has_enough_orchard_flags(&self) -> bool
pub fn has_enough_orchard_flags(&self) -> bool
Does this transaction has at least one flag when we have at least one orchard action?
sourcepub fn coinbase_spend_restriction(
&self,
spend_height: Height
) -> CoinbaseSpendRestriction
pub fn coinbase_spend_restriction(
&self,
spend_height: Height
) -> CoinbaseSpendRestriction
Returns the CoinbaseSpendRestriction
for this transaction,
assuming it is mined at spend_height
.
sourcepub fn is_overwintered(&self) -> bool
pub fn is_overwintered(&self) -> bool
Return if the fOverwintered
flag of this transaction is set.
sourcepub fn expiry_height(&self) -> Option<Height>
pub fn expiry_height(&self) -> Option<Height>
Get this transaction’s expiry height, if any.
sourcepub fn expiry_height_mut(&mut self) -> &mut Height
pub fn expiry_height_mut(&mut self) -> &mut Height
sourcepub fn network_upgrade(&self) -> Option<NetworkUpgrade>
pub fn network_upgrade(&self) -> Option<NetworkUpgrade>
Get this transaction’s network upgrade field, if any.
This field is serialized as nConsensusBranchId
(7.1).
sourcepub fn inputs(&self) -> &[Input]
pub fn inputs(&self) -> &[Input]
Access the transparent inputs of this transaction, regardless of version.
sourcepub fn inputs_mut(&mut self) -> &mut Vec<Input>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn inputs_mut(&mut self) -> &mut Vec<Input>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Modify the transparent inputs of this transaction, regardless of version.
sourcepub fn spent_outpoints(&self) -> impl Iterator<Item = OutPoint> + '_
pub fn spent_outpoints(&self) -> impl Iterator<Item = OutPoint> + '_
Access the transparent::OutPoint
s spent by this transaction’s transparent::Input
s.
sourcepub fn outputs(&self) -> &[Output]
pub fn outputs(&self) -> &[Output]
Access the transparent outputs of this transaction, regardless of version.
sourcepub fn outputs_mut(&mut self) -> &mut Vec<Output>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
pub fn outputs_mut(&mut self) -> &mut Vec<Output>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
Modify the transparent outputs of this transaction, regardless of version.
sourcepub fn is_coinbase(&self) -> bool
pub fn is_coinbase(&self) -> bool
Returns true
if this transaction has valid inputs for a coinbase
transaction, that is, has a single input and it is a coinbase input
(null prevout).
sourcepub fn is_valid_non_coinbase(&self) -> bool
pub fn is_valid_non_coinbase(&self) -> bool
Returns true
if this transaction has valid inputs for a non-coinbase
transaction, that is, does not have any coinbase input (non-null prevouts).
Note that it’s possible for a transaction return false in both
Transaction::is_coinbase
and Transaction::is_valid_non_coinbase
,
though those transactions will be rejected.
sourcepub fn sprout_groth16_joinsplits(
&self
) -> Box<dyn Iterator<Item = &JoinSplit<Groth16Proof>>>
pub fn sprout_groth16_joinsplits(
&self
) -> Box<dyn Iterator<Item = &JoinSplit<Groth16Proof>>>
Returns the Sprout JoinSplit<Groth16Proof>
s in this transaction, regardless of version.
sourcepub fn joinsplit_count(&self) -> usize
pub fn joinsplit_count(&self) -> usize
Returns the number of JoinSplit
s in this transaction, regardless of version.
sourcepub fn sprout_nullifiers(&self) -> Box<dyn Iterator<Item = &Nullifier>>
pub fn sprout_nullifiers(&self) -> Box<dyn Iterator<Item = &Nullifier>>
Access the sprout::Nullifiers in this transaction, regardless of version.
sourcepub fn sprout_joinsplit_pub_key(&self) -> Option<VerificationKeyBytes>
pub fn sprout_joinsplit_pub_key(&self) -> Option<VerificationKeyBytes>
Access the JoinSplit public validating key in this transaction, regardless of version, if any.
sourcepub fn has_sprout_joinsplit_data(&self) -> bool
pub fn has_sprout_joinsplit_data(&self) -> bool
Return if the transaction has any Sprout JoinSplit data.
sourcepub fn sprout_note_commitments(
&self
) -> Box<dyn Iterator<Item = &NoteCommitment>>
pub fn sprout_note_commitments(
&self
) -> Box<dyn Iterator<Item = &NoteCommitment>>
Returns the Sprout note commitments in this transaction.
sourcepub fn sapling_anchors(&self) -> Box<dyn Iterator<Item = Root>>
pub fn sapling_anchors(&self) -> Box<dyn Iterator<Item = Root>>
Access the deduplicated sapling::tree::Root
s in this transaction,
regardless of version.
sourcepub fn sapling_spends_per_anchor(
&self
) -> Box<dyn Iterator<Item = Spend<PerSpendAnchor>>>
pub fn sapling_spends_per_anchor(
&self
) -> Box<dyn Iterator<Item = Spend<PerSpendAnchor>>>
Iterate over the sapling Spend
s for this transaction,
returning Spend<PerSpendAnchor>
regardless of the underlying
transaction version.
Shared anchors in V5 transactions are copied into each sapling spend. This allows the same code to validate spends from V4 and V5 transactions.
Correctness
Do not use this function for serialization.
sourcepub fn sapling_outputs(&self) -> Box<dyn Iterator<Item = &Output>>
pub fn sapling_outputs(&self) -> Box<dyn Iterator<Item = &Output>>
Iterate over the sapling Output
s for this
transaction
sourcepub fn sapling_nullifiers(&self) -> Box<dyn Iterator<Item = &Nullifier>>
pub fn sapling_nullifiers(&self) -> Box<dyn Iterator<Item = &Nullifier>>
Access the sapling::Nullifiers in this transaction, regardless of version.
sourcepub fn sapling_note_commitments(&self) -> Box<dyn Iterator<Item = &Fq>>
pub fn sapling_note_commitments(&self) -> Box<dyn Iterator<Item = &Fq>>
Returns the Sapling note commitments in this transaction, regardless of version.
sourcepub fn has_sapling_shielded_data(&self) -> bool
pub fn has_sapling_shielded_data(&self) -> bool
Return if the transaction has any Sapling shielded data.
sourcepub fn orchard_shielded_data(&self) -> Option<&ShieldedData>
pub fn orchard_shielded_data(&self) -> Option<&ShieldedData>
Access the orchard::ShieldedData
in this transaction,
regardless of version.
sourcepub fn orchard_shielded_data_mut(&mut self) -> Option<&mut ShieldedData>
pub fn orchard_shielded_data_mut(&mut self) -> Option<&mut ShieldedData>
Modify the orchard::ShieldedData
in this transaction,
regardless of version.
sourcepub fn orchard_actions(&self) -> impl Iterator<Item = &Action>
pub fn orchard_actions(&self) -> impl Iterator<Item = &Action>
Iterate over the orchard::Action
s in this transaction, if there are any,
regardless of version.
sourcepub fn orchard_nullifiers(&self) -> impl Iterator<Item = &Nullifier>
pub fn orchard_nullifiers(&self) -> impl Iterator<Item = &Nullifier>
Access the orchard::Nullifier
s in this transaction, if there are any,
regardless of version.
sourcepub fn orchard_note_commitments(&self) -> impl Iterator<Item = &Base>
pub fn orchard_note_commitments(&self) -> impl Iterator<Item = &Base>
Access the note commitments in this transaction, if there are any, regardless of version.
sourcepub fn orchard_flags(&self) -> Option<Flags>
pub fn orchard_flags(&self) -> Option<Flags>
Access the orchard::Flags
in this transaction, if there is any,
regardless of version.
sourcepub fn has_orchard_shielded_data(&self) -> bool
pub fn has_orchard_shielded_data(&self) -> bool
Return if the transaction has any Orchard shielded data, regardless of version.
sourcepub fn output_values_mut(
&mut self
) -> impl Iterator<Item = &mut Amount<NonNegative>>
pub fn output_values_mut(
&mut self
) -> impl Iterator<Item = &mut Amount<NonNegative>>
Modify the transparent output values of this transaction, regardless of version.
sourcepub fn output_values_to_sprout(
&self
) -> Box<dyn Iterator<Item = &Amount<NonNegative>>>
pub fn output_values_to_sprout(
&self
) -> Box<dyn Iterator<Item = &Amount<NonNegative>>>
Returns the vpub_old
fields from JoinSplit
s in this transaction,
regardless of version, in the order they appear in the transaction.
These values are added to the sprout chain value pool, and removed from the value pool of this transaction.
sourcepub fn output_values_to_sprout_mut(
&mut self
) -> Box<dyn Iterator<Item = &mut Amount<NonNegative>>>
pub fn output_values_to_sprout_mut(
&mut self
) -> Box<dyn Iterator<Item = &mut Amount<NonNegative>>>
Modify the vpub_old
fields from JoinSplit
s in this transaction,
regardless of version, in the order they appear in the transaction.
See output_values_to_sprout
for details.
sourcepub fn input_values_from_sprout(
&self
) -> Box<dyn Iterator<Item = &Amount<NonNegative>>>
pub fn input_values_from_sprout(
&self
) -> Box<dyn Iterator<Item = &Amount<NonNegative>>>
Returns the vpub_new
fields from JoinSplit
s in this transaction,
regardless of version, in the order they appear in the transaction.
These values are removed from the value pool of this transaction. and added to the sprout chain value pool.
sourcepub fn input_values_from_sprout_mut(
&mut self
) -> Box<dyn Iterator<Item = &mut Amount<NonNegative>>>
pub fn input_values_from_sprout_mut(
&mut self
) -> Box<dyn Iterator<Item = &mut Amount<NonNegative>>>
Modify the vpub_new
fields from JoinSplit
s in this transaction,
regardless of version, in the order they appear in the transaction.
See input_values_from_sprout
for details.
sourcepub fn sapling_value_balance(&self) -> ValueBalance<NegativeAllowed>
pub fn sapling_value_balance(&self) -> ValueBalance<NegativeAllowed>
Return the sapling value balance,
the change in the transaction value pool due to sapling Spend
s and Output
s.
Returns the valueBalanceSapling
field in this transaction.
Positive values are added to this transaction’s value pool, and removed from the sapling chain value pool. Negative values are removed from this transaction, and added to sapling pool.
https://zebra.zfnd.org/dev/rfcs/0012-value-pools.html#definitions
sourcepub fn sapling_value_balance_mut(
&mut self
) -> Option<&mut Amount<NegativeAllowed>>
pub fn sapling_value_balance_mut(
&mut self
) -> Option<&mut Amount<NegativeAllowed>>
Modify the value_balance
field from the sapling::ShieldedData
in this transaction,
regardless of version.
See sapling_value_balance
for details.
sourcepub fn orchard_value_balance(&self) -> ValueBalance<NegativeAllowed>
pub fn orchard_value_balance(&self) -> ValueBalance<NegativeAllowed>
Return the orchard value balance, the change in the transaction value
pool due to orchard::Action
s.
Returns the valueBalanceOrchard
field in this transaction.
Positive values are added to this transaction’s value pool, and removed from the orchard chain value pool. Negative values are removed from this transaction, and added to orchard pool.
https://zebra.zfnd.org/dev/rfcs/0012-value-pools.html#definitions
sourcepub fn orchard_value_balance_mut(
&mut self
) -> Option<&mut Amount<NegativeAllowed>>
pub fn orchard_value_balance_mut(
&mut self
) -> Option<&mut Amount<NegativeAllowed>>
Modify the value_balance
field from the orchard::ShieldedData
in this transaction,
regardless of version.
See orchard_value_balance
for details.
sourcepub fn value_balance(
&self,
utxos: &HashMap<OutPoint, Utxo>
) -> Result<ValueBalance<NegativeAllowed>, ValueBalanceError>
pub fn value_balance(
&self,
utxos: &HashMap<OutPoint, Utxo>
) -> Result<ValueBalance<NegativeAllowed>, ValueBalanceError>
Get the value balances for this transaction. These are the changes in the transaction value pool, split up into transparent, sprout, sapling, and orchard values.
Calculated as the sum of the inputs and outputs from each pool, or the sum of the value balances from each pool.
Positive values are added to this transaction’s value pool, and removed from the corresponding chain value pool. Negative values are removed from this transaction, and added to the corresponding pool.
https://zebra.zfnd.org/dev/rfcs/0012-value-pools.html#definitions
utxos
must contain the utxos of every input in the transaction,
including UTXOs created by earlier transactions in this block.
Note: the chain value pool has the opposite sign to the transaction value pool.
Trait Implementations
sourceimpl Arbitrary for Transaction
impl Arbitrary for Transaction
type Parameters = LedgerState
type Parameters = LedgerState
The type of parameters that arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
. Read more
sourcefn arbitrary_with(ledger_state: Self::Parameters) -> Self::Strategy
fn arbitrary_with(ledger_state: Self::Parameters) -> Self::Strategy
type Strategy = BoxedStrategy<Transaction>
type Strategy = BoxedStrategy<Transaction>
sourceimpl Clone for Transaction
impl Clone for Transaction
sourcefn clone(&self) -> Transaction
fn clone(&self) -> Transaction
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for Transaction
impl Debug for Transaction
sourceimpl Display for Transaction
impl Display for Transaction
sourceimpl From<&Transaction> for AuthDigest
impl From<&Transaction> for AuthDigest
sourcefn from(transaction: &Transaction) -> Self
fn from(transaction: &Transaction) -> Self
sourceimpl From<&Transaction> for Hash
impl From<&Transaction> for Hash
sourcefn from(transaction: &Transaction) -> Self
fn from(transaction: &Transaction) -> Self
Converts to this type from the input type.
sourceimpl From<&Transaction> for WtxId
impl From<&Transaction> for WtxId
sourcefn from(transaction: &Transaction) -> Self
fn from(transaction: &Transaction) -> Self
sourceimpl From<&Transaction> for UnminedTxId
impl From<&Transaction> for UnminedTxId
sourcefn from(transaction: &Transaction) -> Self
fn from(transaction: &Transaction) -> Self
Converts to this type from the input type.
sourceimpl From<&Transaction> for UnminedTx
impl From<&Transaction> for UnminedTx
sourcefn from(transaction: &Transaction) -> Self
fn from(transaction: &Transaction) -> Self
Converts to this type from the input type.
sourceimpl From<Transaction> for AuthDigest
impl From<Transaction> for AuthDigest
sourcefn from(transaction: Transaction) -> Self
fn from(transaction: Transaction) -> Self
sourceimpl From<Transaction> for Hash
impl From<Transaction> for Hash
sourcefn from(transaction: Transaction) -> Self
fn from(transaction: Transaction) -> Self
Converts to this type from the input type.
sourceimpl From<Transaction> for WtxId
impl From<Transaction> for WtxId
sourcefn from(transaction: Transaction) -> Self
fn from(transaction: Transaction) -> Self
sourceimpl From<Transaction> for UnminedTxId
impl From<Transaction> for UnminedTxId
sourcefn from(transaction: Transaction) -> Self
fn from(transaction: Transaction) -> Self
Converts to this type from the input type.
sourceimpl From<Transaction> for UnminedTx
impl From<Transaction> for UnminedTx
sourcefn from(transaction: Transaction) -> Self
fn from(transaction: Transaction) -> Self
Converts to this type from the input type.
sourceimpl PartialEq<Transaction> for Transaction
impl PartialEq<Transaction> for Transaction
sourcefn eq(&self, other: &Transaction) -> bool
fn eq(&self, other: &Transaction) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &Transaction) -> bool
fn ne(&self, other: &Transaction) -> bool
This method tests for !=
.
sourceimpl Serialize for Transaction
impl Serialize for Transaction
sourceimpl TrustedPreallocate for Transaction
impl TrustedPreallocate for Transaction
No valid Zcash message contains more transactions than can fit in a single block
tx
messages contain a single transaction, and block
messages are limited to the maximum
block size.
sourcefn max_allocation() -> u64
fn max_allocation() -> u64
Provides a loose upper bound on the size of the Vec<T: TrustedPreallocate> which can possibly be received from an honest peer. Read more
sourceimpl TryFrom<&Transaction> for Transaction
impl TryFrom<&Transaction> for Transaction
sourceimpl ZcashDeserialize for Transaction
impl ZcashDeserialize for Transaction
sourcefn zcash_deserialize<R: Read>(reader: R) -> Result<Self, SerializationError>
fn zcash_deserialize<R: Read>(reader: R) -> Result<Self, SerializationError>
Try to read self
from the given reader
. Read more
sourceimpl ZcashSerialize for Transaction
impl ZcashSerialize for Transaction
sourcefn zcash_serialize<W: Write>(&self, writer: W) -> Result<(), Error>
fn zcash_serialize<W: Write>(&self, writer: W) -> Result<(), Error>
Write self
to the given writer
using the canonical format. Read more
sourcefn zcash_serialize_to_vec(&self) -> Result<Vec<u8>, Error>
fn zcash_serialize_to_vec(&self) -> Result<Vec<u8>, Error>
Helper function to construct a vec to serialize the current struct into
sourcefn zcash_serialized_size(&self) -> Result<usize, Error>
fn zcash_serialized_size(&self) -> Result<usize, Error>
Get the size of self
by using a fake writer.
impl Eq for Transaction
impl StructuralEq for Transaction
impl StructuralPartialEq for Transaction
Auto Trait Implementations
impl RefUnwindSafe for Transaction
impl Send for Transaction
impl Sync for Transaction
impl Unpin for Transaction
impl UnwindSafe for Transaction
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to key
and return true
if they are equal.
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,
Causes self
to use its Binary
implementation when Debug
-formatted. Read more
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted. Read more
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
fn fmt_list(self) -> FmtList<Self> where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self> where
&'a Self: for<'a> IntoIterator,
Formats each item in a sequence. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Instruments this type with the provided Span
, returning an
Instrumented
wrapper. Read more
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<D> OwoColorize for D
impl<D> OwoColorize for D
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self> where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self> where
C: Color,
Set the foreground color generically Read more
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self> where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self> where
C: Color,
Set the background color generically. Read more
fn black(&'a self) -> FgColorDisplay<'a, Black, Self>
fn black(&'a self) -> FgColorDisplay<'a, Black, Self>
Change the foreground color to black
fn on_black(&'a self) -> BgColorDisplay<'a, Black, Self>
fn on_black(&'a self) -> BgColorDisplay<'a, Black, Self>
Change the background color to black
fn red(&'a self) -> FgColorDisplay<'a, Red, Self>
fn red(&'a self) -> FgColorDisplay<'a, Red, Self>
Change the foreground color to red
fn on_red(&'a self) -> BgColorDisplay<'a, Red, Self>
fn on_red(&'a self) -> BgColorDisplay<'a, Red, Self>
Change the background color to red
fn green(&'a self) -> FgColorDisplay<'a, Green, Self>
fn green(&'a self) -> FgColorDisplay<'a, Green, Self>
Change the foreground color to green
fn on_green(&'a self) -> BgColorDisplay<'a, Green, Self>
fn on_green(&'a self) -> BgColorDisplay<'a, Green, Self>
Change the background color to green
fn yellow(&'a self) -> FgColorDisplay<'a, Yellow, Self>
fn yellow(&'a self) -> FgColorDisplay<'a, Yellow, Self>
Change the foreground color to yellow
fn on_yellow(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow(&'a self) -> BgColorDisplay<'a, Yellow, Self>
Change the background color to yellow
fn blue(&'a self) -> FgColorDisplay<'a, Blue, Self>
fn blue(&'a self) -> FgColorDisplay<'a, Blue, Self>
Change the foreground color to blue
fn on_blue(&'a self) -> BgColorDisplay<'a, Blue, Self>
fn on_blue(&'a self) -> BgColorDisplay<'a, Blue, Self>
Change the background color to blue
fn magenta(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to magenta
fn on_magenta(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to magenta
fn purple(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn purple(&'a self) -> FgColorDisplay<'a, Magenta, Self>
Change the foreground color to purple
fn on_purple(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple(&'a self) -> BgColorDisplay<'a, Magenta, Self>
Change the background color to purple
fn cyan(&'a self) -> FgColorDisplay<'a, Cyan, Self>
fn cyan(&'a self) -> FgColorDisplay<'a, Cyan, Self>
Change the foreground color to cyan
fn on_cyan(&'a self) -> BgColorDisplay<'a, Cyan, Self>
fn on_cyan(&'a self) -> BgColorDisplay<'a, Cyan, Self>
Change the background color to cyan
fn white(&'a self) -> FgColorDisplay<'a, White, Self>
fn white(&'a self) -> FgColorDisplay<'a, White, Self>
Change the foreground color to white
fn on_white(&'a self) -> BgColorDisplay<'a, White, Self>
fn on_white(&'a self) -> BgColorDisplay<'a, White, Self>
Change the background color to white
fn default_color(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color(&'a self) -> FgColorDisplay<'a, Default, Self>
Change the foreground color to the terminal default
fn on_default_color(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color(&'a self) -> BgColorDisplay<'a, Default, Self>
Change the background color to the terminal default
fn bright_black(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
Change the foreground color to bright black
fn on_bright_black(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
Change the background color to bright black
fn bright_red(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
Change the foreground color to bright red
fn on_bright_red(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
Change the background color to bright red
fn bright_green(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
Change the foreground color to bright green
fn on_bright_green(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
Change the background color to bright green
fn bright_yellow(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
Change the foreground color to bright yellow
fn on_bright_yellow(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
Change the background color to bright yellow
fn bright_blue(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
Change the foreground color to bright blue
fn on_bright_blue(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
Change the background color to bright blue
fn bright_magenta(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright magenta
fn on_bright_magenta(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright magenta
fn bright_purple(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
Change the foreground color to bright purple
fn on_bright_purple(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
Change the background color to bright purple
fn bright_cyan(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
Change the foreground color to bright cyan
fn on_bright_cyan(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
Change the background color to bright cyan
fn bright_white(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
Change the foreground color to bright white
fn on_bright_white(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
Change the background color to bright white
fn bold(&'a self) -> BoldDisplay<'a, Self>
fn bold(&'a self) -> BoldDisplay<'a, Self>
Make the text bold
fn dimmed(&'a self) -> DimDisplay<'a, Self>
fn dimmed(&'a self) -> DimDisplay<'a, Self>
Make the text dim
fn italic(&'a self) -> ItalicDisplay<'a, Self>
fn italic(&'a self) -> ItalicDisplay<'a, Self>
Make the text italicized
fn underline(&'a self) -> UnderlineDisplay<'a, Self>
fn underline(&'a self) -> UnderlineDisplay<'a, Self>
Make the text italicized
fn blink(&'a self) -> BlinkDisplay<'a, Self>
fn blink(&'a self) -> BlinkDisplay<'a, Self>
Make the text blink
fn blink_fast(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast(&'a self) -> BlinkFastDisplay<'a, Self>
Make the text blink (but fast!)
fn reversed(&'a self) -> ReversedDisplay<'a, Self>
fn reversed(&'a self) -> ReversedDisplay<'a, Self>
Swap the foreground and background colors
Hide the text
fn strikethrough(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough(&'a self) -> StrikeThroughDisplay<'a, Self>
Cross out the text
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self> where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self> where
Color: DynColor,
Set the foreground color at runtime. Only use if you do not know which color will be used at
compile-time. If the color is constant, use either OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read more
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self> where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self> where
Color: DynColor,
Set the background color at runtime. Only use if you do not know what color to use at
compile-time. If the color is constant, use either OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more
fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the foreground color to a specific RGB value.
fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
Set the background color to a specific RGB value.
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
Sets the foreground color to an RGB value.
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
Sets the background color to an RGB value.
impl<T> Pipe for T where
T: ?Sized,
impl<T> Pipe for T where
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
Borrows 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) -> R where
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
Mutably borrows 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 where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.borrow()
into the pipe function. Read more
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows 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 where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.deref()
into the pipe function.
impl<T> Pointable for T
impl<T> Pointable for T
sourceimpl<Response, Error> ResponseResult<Response, Error> for Response
impl<Response, Error> ResponseResult<Response, Error> for Response
sourcefn into_result(self) -> Result<Response, Error>
fn into_result(self) -> Result<Response, Error>
Converts the type into a Result
that can be sent as a response.
sourceimpl<T> SectionExt for T where
T: 'static + Display + Send + Sync,
impl<T> SectionExt for T where
T: 'static + Display + Send + Sync,
impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl for<'_> FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl for<'_> FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more
fn tap_borrow_mut<B>(self, func: impl for<'_> FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl for<'_> FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more
fn tap_ref<R>(self, func: impl for<'_> FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl for<'_> FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more
fn tap_ref_mut<R>(self, func: impl for<'_> FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl for<'_> FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more
fn tap_deref<T>(self, func: impl for<'_> FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl for<'_> FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more
fn tap_deref_mut<T>(self, func: impl for<'_> FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl for<'_> FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more
fn tap_dbg(self, func: impl for<'_> FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl for<'_> FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.
fn tap_mut_dbg(self, func: impl for<'_> FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl for<'_> FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_dbg<B>(self, func: impl for<'_> FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl for<'_> FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_mut_dbg<B>(self, func: impl for<'_> FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl for<'_> FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
fn tap_ref_dbg<R>(self, func: impl for<'_> FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl for<'_> FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
fn tap_ref_mut_dbg<R>(self, func: impl for<'_> FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl for<'_> FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn 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>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn 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>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more