Skip to main content

ParseError

Enum ParseError 

Source
#[non_exhaustive]
pub enum ParseError { EOF, UnknownTag { tag: u8, offset: usize, }, UnexpectedEndTag, IncorrectStartTag { tag: TagType, }, }
Expand description

Failures which can occur while parsing an NBT document.

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.
§

EOF

End of file happens when the document is truncated, i.e. we were expecting some data to follow after something, and then the file ended instead. In particular, this can happen when:

  • Any primitive type is not followed by enough bytes to construct the primitive type (TAG_Byte, TAG_Short, TAG_Int, TAG_Long, TAG_Float, TAG_Double).

  • A TAG_Byte_Array, TAG_String, or TAG_Int_Array is not followed by as many elements as it says it is.

  • A TAG_List does not have as many elements as it says it does, or we get an EOF while attempting to parse an element.

  • A TAG_Compound does not have a TAG_End to terminate it, or we get an EOF while attempting to parse a tag.

§

UnknownTag

This happens when there is an unknown tag type in the stream. This can happen if Mojang adds new tag types, if a document has third party tag types, if the file is corrupted, or if there’s a bug in the library.

Fields

§tag: u8
§offset: usize
§

UnexpectedEndTag

This happens when we found a TAG_End where we shouldn’t have. TAG_End is only supposed to be found after having a TAG_Compound, to terminate it. Places we can find this include as the root tag of a document and inside of a List.

§

IncorrectStartTag

This library assumes that NBT documents always have a root TAG_Compound, and if this invariant fails this error will be generated.

Fields

Trait Implementations§

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, fmt: &mut Formatter<'_>) -> Result

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

impl Error for ParseError

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

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> 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> 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.