#[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
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.
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.
Trait Implementations§
Source§impl Debug for ParseError
impl Debug for ParseError
Source§impl Display for ParseError
impl Display for ParseError
Source§impl Error for ParseError
impl Error for ParseError
1.30.0 · 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()