[][src]Enum nobility::bin_decode::ParseError

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

Failures which can occur while parsing an NBT document.

Variants (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 of UnknownTag

tag: u8offset: 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 of IncorrectStartTag

tag: TagType

Trait Implementations

impl Debug for ParseError[src]

impl Display for ParseError[src]

impl Error for ParseError[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.