#[non_exhaustive]pub enum ValidateContextError {
Show 30 variants
#[non_exhaustive] BlockPreviouslyInvalidated {
block_hash: Hash,
},
#[non_exhaustive] NotReadyToBeCommitted,
#[non_exhaustive] OrphanedBlock {
candidate_height: Height,
finalized_tip_height: Height,
},
#[non_exhaustive] NonSequentialBlock {
candidate_height: Height,
parent_height: Height,
},
#[non_exhaustive] TimeTooEarly {
candidate_time: DateTime<Utc>,
median_time_past: DateTime<Utc>,
},
#[non_exhaustive] TimeTooLate {
candidate_time: DateTime<Utc>,
block_time_max: DateTime<Utc>,
},
#[non_exhaustive] InvalidDifficultyThreshold {
difficulty_threshold: CompactDifficulty,
expected_difficulty: CompactDifficulty,
},
#[non_exhaustive] DuplicateTransparentSpend {
outpoint: OutPoint,
location: &'static str,
},
#[non_exhaustive] MissingTransparentOutput {
outpoint: OutPoint,
location: &'static str,
},
#[non_exhaustive] EarlyTransparentSpend {
outpoint: OutPoint,
},
#[non_exhaustive] UnshieldedTransparentCoinbaseSpend {
outpoint: OutPoint,
},
#[non_exhaustive] ImmatureTransparentCoinbaseSpend {
outpoint: OutPoint,
spend_height: Height,
min_spend_height: Height,
created_height: Height,
},
#[non_exhaustive] DuplicateSproutNullifier {
nullifier: Nullifier,
in_finalized_state: bool,
},
#[non_exhaustive] DuplicateSaplingNullifier {
nullifier: Nullifier,
in_finalized_state: bool,
},
#[non_exhaustive] DuplicateOrchardNullifier {
nullifier: Nullifier,
in_finalized_state: bool,
},
#[non_exhaustive] DuplicateIronwoodNullifier {
nullifier: Nullifier,
in_finalized_state: bool,
},
#[non_exhaustive] NegativeRemainingTransactionValue {
amount_error: Error,
height: Height,
tx_index_in_block: usize,
transaction_hash: Hash,
},
#[non_exhaustive] CalculateRemainingTransactionValue {
amount_error: Error,
height: Height,
tx_index_in_block: usize,
transaction_hash: Hash,
},
#[non_exhaustive] CalculateTransactionValueBalances {
value_balance_error: ValueBalanceError,
height: Height,
tx_index_in_block: usize,
transaction_hash: Hash,
},
#[non_exhaustive] CalculateBlockChainValueChange {
value_balance_error: ValueBalanceError,
height: Height,
block_hash: Hash,
transaction_count: usize,
spent_utxo_count: usize,
},
#[non_exhaustive] AddValuePool {
value_balance_error: ValueBalanceError,
chain_value_pools: Box<ValueBalance<NonNegative>>,
block_value_pool_change: Box<ValueBalance<NegativeAllowed>>,
height: Option<Height>,
},
#[non_exhaustive] InvalidSubsidy {
subsidy_error: CoinbaseTransactionError,
height: Height,
block_hash: Hash,
},
NoteCommitmentTreeError(NoteCommitmentTreeError),
HistoryTreeError(Arc<HistoryTreeError>),
InvalidBlockCommitment(CommitmentError),
#[non_exhaustive] UnknownSproutAnchor {
anchor: Root,
height: Option<Height>,
tx_index_in_block: Option<usize>,
transaction_hash: Hash,
},
#[non_exhaustive] UnknownSaplingAnchor {
anchor: Root,
height: Option<Height>,
tx_index_in_block: Option<usize>,
transaction_hash: Hash,
},
#[non_exhaustive] UnknownOrchardAnchor {
anchor: Root,
height: Option<Height>,
tx_index_in_block: Option<usize>,
transaction_hash: Hash,
},
#[non_exhaustive] UnknownIronwoodAnchor {
anchor: Root,
height: Option<Height>,
tx_index_in_block: Option<usize>,
transaction_hash: Hash,
},
#[non_exhaustive] AncestorRejected {
ancestor_hash: Hash,
source: Box<ValidateContextError>,
},
}Expand description
An error describing why a block failed contextual validation.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
#[non_exhaustive]BlockPreviouslyInvalidated
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]NotReadyToBeCommitted
#[non_exhaustive]OrphanedBlock
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]NonSequentialBlock
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]TimeTooEarly
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]TimeTooLate
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]InvalidDifficultyThreshold
Fields
This variant is marked as non-exhaustive
difficulty_threshold: CompactDifficultyexpected_difficulty: CompactDifficulty#[non_exhaustive]DuplicateTransparentSpend
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]MissingTransparentOutput
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]EarlyTransparentSpend
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]UnshieldedTransparentCoinbaseSpend
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ImmatureTransparentCoinbaseSpend
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]DuplicateSproutNullifier
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]DuplicateSaplingNullifier
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]DuplicateOrchardNullifier
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]DuplicateIronwoodNullifier
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]NegativeRemainingTransactionValue
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]CalculateRemainingTransactionValue
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]CalculateTransactionValueBalances
Fields
This variant is marked as non-exhaustive
value_balance_error: ValueBalanceError#[non_exhaustive]CalculateBlockChainValueChange
Fields
This variant is marked as non-exhaustive
value_balance_error: ValueBalanceError#[non_exhaustive]AddValuePool
Fields
This variant is marked as non-exhaustive
value_balance_error: ValueBalanceErrorchain_value_pools: Box<ValueBalance<NonNegative>>block_value_pool_change: Box<ValueBalance<NegativeAllowed>>#[non_exhaustive]InvalidSubsidy
Fields
This variant is marked as non-exhaustive
subsidy_error: CoinbaseTransactionErrorNoteCommitmentTreeError(NoteCommitmentTreeError)
HistoryTreeError(Arc<HistoryTreeError>)
InvalidBlockCommitment(CommitmentError)
#[non_exhaustive]UnknownSproutAnchor
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]UnknownSaplingAnchor
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]UnknownOrchardAnchor
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]UnknownIronwoodAnchor
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]AncestorRejected
The block was not validated because an ancestor in the same queued chain failed contextual validation.
This is a distinct variant, rather than a copy of the ancestor’s error, so the peer that served this block isn’t scored or classified for the ancestor’s failure.
Fields
This variant is marked as non-exhaustive
source: Box<ValidateContextError>Implementations§
Source§impl ValidateContextError
impl ValidateContextError
Sourcepub fn is_auth_commitment_mismatch(&self) -> bool
pub fn is_auth_commitment_mismatch(&self) -> bool
Returns true if the block’s authorizing data doesn’t match the commitment in
its header.
From NU5 onward, the block header hash and merkle root don’t commit to the authorizing data, so a peer can serve a forged body for a canonical header without changing the block hash. A mismatched authorizing data commitment proves the served body doesn’t belong to its header, and an honest peer never serves such a body, so the serving peer is misbehaving and the hash is still wanted.
Sourcepub fn is_descendant_of_auth_commitment_mismatch(&self) -> bool
pub fn is_descendant_of_auth_commitment_mismatch(&self) -> bool
Returns true if the block was rejected only because an ancestor’s authorizing
data didn’t match the commitment in its header.
The ancestor’s served body was forged, but its hash is still wanted, so this block’s hash is still wanted too. The peer that served this block isn’t the one that forged the ancestor, so it must not be scored.
Sourcepub fn for_descendant(&self, ancestor_hash: Hash) -> Self
pub fn for_descendant(&self, ancestor_hash: Hash) -> Self
Wraps self, the error of a rejected ancestor block, into the error for one of
its descendants, so the descendant carries neither the ancestor’s misbehaviour
score nor its classification.
Sourcepub fn misbehavior_score(&self) -> u32
pub fn misbehavior_score(&self) -> u32
Returns a suggested misbehaviour score increment for a certain error.
Trait Implementations§
Source§impl Clone for ValidateContextError
impl Clone for ValidateContextError
Source§fn clone(&self) -> ValidateContextError
fn clone(&self) -> ValidateContextError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ValidateContextError
impl Debug for ValidateContextError
Source§impl Display for ValidateContextError
impl Display for ValidateContextError
impl Eq for ValidateContextError
Source§impl Error for ValidateContextError
impl Error for ValidateContextError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<Arc<HistoryTreeError>> for ValidateContextError
impl From<Arc<HistoryTreeError>> for ValidateContextError
Source§fn from(source: Arc<HistoryTreeError>) -> Self
fn from(source: Arc<HistoryTreeError>) -> Self
Source§impl From<Box<ValidateContextError>> for CommitBlockError
impl From<Box<ValidateContextError>> for CommitBlockError
Source§fn from(source: Box<ValidateContextError>) -> Self
fn from(source: Box<ValidateContextError>) -> Self
Source§impl From<CommitmentError> for ValidateContextError
impl From<CommitmentError> for ValidateContextError
Source§fn from(source: CommitmentError) -> Self
fn from(source: CommitmentError) -> Self
Source§impl From<NoteCommitmentTreeError> for ValidateContextError
impl From<NoteCommitmentTreeError> for ValidateContextError
Source§fn from(source: NoteCommitmentTreeError) -> Self
fn from(source: NoteCommitmentTreeError) -> Self
Source§impl From<NoteCommitmentTreeError> for ValidateContextError
impl From<NoteCommitmentTreeError> for ValidateContextError
Source§fn from(value: NoteCommitmentTreeError) -> Self
fn from(value: NoteCommitmentTreeError) -> Self
Source§impl From<ValidateContextError> for CommitSemanticallyVerifiedError
impl From<ValidateContextError> for CommitSemanticallyVerifiedError
Source§fn from(value: ValidateContextError) -> Self
fn from(value: ValidateContextError) -> Self
Source§impl From<ValidateContextError> for CommitCheckpointVerifiedError
impl From<ValidateContextError> for CommitCheckpointVerifiedError
Source§fn from(value: ValidateContextError) -> Self
fn from(value: ValidateContextError) -> Self
Source§impl PartialEq for ValidateContextError
impl PartialEq for ValidateContextError
impl StructuralPartialEq for ValidateContextError
Auto Trait Implementations§
impl !RefUnwindSafe for ValidateContextError
impl !UnwindSafe for ValidateContextError
impl Freeze for ValidateContextError
impl Send for ValidateContextError
impl Sync for ValidateContextError
impl Unpin for ValidateContextError
impl UnsafeUnpin for ValidateContextError
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.impl<T> ErasedDestructor for Twhere
T: 'static,
§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> ⓘ
§impl<E> InstrumentError for Ewhere
TracedError<E>: From<E>,
impl<E> InstrumentError for Ewhere
TracedError<E>: From<E>,
§type Instrumented = TracedError<E>
type Instrumented = TracedError<E>
§fn in_current_span(self) -> <E as InstrumentError>::Instrumented
fn in_current_span(self) -> <E as InstrumentError>::Instrumented
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 moreimpl<T> MaybeSendSync for T
§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,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
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,
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>
§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>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§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>
§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,
Source§impl<Response, Error> ResponseResult<Response, Error> for Response
impl<Response, Error> ResponseResult<Response, Error> for Response
Source§fn into_result(self) -> Result<Response, Error>
fn into_result(self) -> Result<Response, Error>
Result that can be sent as a response.Source§impl<T> SectionExt for T
impl<T> SectionExt 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.§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.
§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘwhere
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
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
Size for each variant:
BlockPreviouslyInvalidated: 48 bytesNotReadyToBeCommitted: 0 bytesOrphanedBlock: 24 bytesNonSequentialBlock: 24 bytesTimeTooEarly: 40 bytesTimeTooLate: 40 bytesInvalidDifficultyThreshold: 24 bytesDuplicateTransparentSpend: 72 bytesMissingTransparentOutput: 72 bytesEarlyTransparentSpend: 52 bytesUnshieldedTransparentCoinbaseSpend: 52 bytesImmatureTransparentCoinbaseSpend: 64 bytesDuplicateSproutNullifier: 49 bytesDuplicateSaplingNullifier: 49 bytesDuplicateOrchardNullifier: 56 bytesDuplicateIronwoodNullifier: 56 bytesNegativeRemainingTransactionValue: 112 bytesCalculateRemainingTransactionValue: 112 bytesCalculateTransactionValueBalances: 128 bytesCalculateBlockChainValueChange: 128 bytesAddValuePool: 112 bytesInvalidSubsidy: 128 bytesNoteCommitmentTreeError: 17 bytesHistoryTreeError: 24 bytesInvalidBlockCommitment: 81 bytesUnknownSproutAnchor: 104 bytesUnknownSaplingAnchor: 104 bytesUnknownOrchardAnchor: 104 bytesUnknownIronwoodAnchor: 104 bytesAncestorRejected: 56 bytes