Skip to main content

ParseError

Enum ParseError 

Source
#[non_exhaustive]
pub enum ParseError {
Show 13 variants UnexpectedEof { needed: usize, available: usize, }, InvalidVarInt, IntegerTooLarge { value: u64, }, OversizedData { size: usize, max: usize, }, UnsupportedVersion(i32), MagicMismatch { expected: [u8; 4], got: [u8; 4], }, InvalidSegwitFlag(u8), InvalidInputCount, TrailingBytes { remaining: usize, }, IncompleteTransactions { expected: usize, parsed: usize, }, InvalidCoinbase, InvalidCoinbaseCount { count: usize, }, Io { message: String, },
}
Expand description

All errors that can occur during parsing.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

UnexpectedEof

Input ended before the structure was complete.

Fields

§needed: usize

How many bytes were needed.

§available: usize

How many were available.

§

InvalidVarInt

A variable-length integer had an invalid encoding.

§

IntegerTooLarge

A length/value was valid as a u64 but does not fit into the platform usize.

Fields

§value: u64

The original integer value that could not fit into usize.

§

OversizedData

A script or data field exceeded the allowed maximum size.

Fields

§size: usize

Actual size that was encountered.

§max: usize

Maximum size allowed by the parser.

§

UnsupportedVersion(i32)

The block / transaction version is not supported by this parser.

§

MagicMismatch

The magic bytes at the start of a raw block did not match.

Fields

§expected: [u8; 4]

The magic bytes this parser was configured to expect.

§got: [u8; 4]

The magic bytes that were actually found in the input.

§

InvalidSegwitFlag(u8)

Segwit marker / flag bytes are invalid.

Tuple Fields

§0: u8

The invalid flag byte.

§

InvalidInputCount

Transaction input count was invalid (e.g., zero in legacy format).

§

TrailingBytes

Extra bytes remained after parsing a structure in strict mode.

Fields

§remaining: usize

Number of bytes left unread.

§

IncompleteTransactions

Not all transactions declared in the block were parsed.

Fields

§expected: usize

Number of transactions declared in the block header.

§parsed: usize

Number of transactions that were actually parsed.

§

InvalidCoinbase

Coinbase transaction had a non-empty txid reference (must be all-zero).

§

InvalidCoinbaseCount

A block contained an unexpected number of coinbase transactions.

Fields

§count: usize

Number of coinbase transactions observed while parsing.

§

Io

An underlying I/O error occurred (only available with the std feature).

Fields

§message: String

Human-readable I/O error message.

Trait Implementations§

Source§

impl Clone for ParseError

Source§

fn clone(&self) -> ParseError

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ParseError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for ParseError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for ParseError

Available on crate feature std only.
1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for ParseError

Available on crate feature std only.
Source§

fn from(e: Error) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for ParseError

Source§

fn eq(&self, other: &ParseError) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for ParseError

Source§

impl StructuralPartialEq for ParseError

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.