Skip to main content

CodecKind

Enum CodecKind 

Source
#[non_exhaustive]
pub enum CodecKind {
Show 14 variants VarInt, VarLong, Nbt, Boolean, Byte, UnsignedByte, Short, UnsignedShort, Int, Long, String, Identifier, TextComponent, JsonTextComponent,
}
Expand description

Identifies the protocol codec that reported an error.

A CodecError stores the codec that originally reported the error and may also store enclosing codecs as additional context. Protocol descriptions are based on the Minecraft Java Edition protocol packet format.

Signed integer codecs use two’s-complement representation.

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

VarInt

A variable-length, two’s-complement signed 32-bit integer.

Values range from -2,147,483,648 through 2,147,483,647.

§

VarLong

A variable-length, two’s-complement signed 64-bit integer.

Values range from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807.

§

Nbt

A complete Named Binary Tag value.

The value is encoded and decoded using fastnbt.

§

Boolean

A boolean encoded as 0x00 for false or 0x01 for true.

§

Byte

A two’s-complement signed 8-bit integer from -128 through 127.

§

UnsignedByte

An unsigned 8-bit integer from 0 through 255.

§

Short

A two’s-complement signed 16-bit integer from -32,768 through 32,767.

§

UnsignedShort

An unsigned 16-bit integer from 0 through 65,535.

§

Int

A two’s-complement signed 32-bit integer from -2,147,483,648 through 2,147,483,647.

§

Long

A two’s-complement signed 64-bit integer from -9,223,372,036,854,775,808 through 9,223,372,036,854,775,807.

§

String

A UTF-8 string prefixed by its byte length as a VarInt.

The protocol limits both the UTF-8 payload size and the number of UTF-16 code units. Supplementary Unicode scalar values count as two UTF-16 code units. The general protocol limit is 32,767 UTF-16 code units and three UTF-8 bytes per permitted code unit; a particular field may impose a lower limit.

§

Identifier

A resource identifier encoded as a String.

The namespace permits [a-z0-9._-]; the value permits [a-z0-9._/-]. See the protocol’s identifier format for details.

§

TextComponent

A text component encoded as an NBT tag.

Plain text-only components may use an NBT string tag. Components with styling, events, or other data use an NBT compound tag. See the text component format and NBT specification.

§

JsonTextComponent

A text component encoded as JSON in a protocol string.

Since Java Edition 1.20.3, the vanilla implementation permits up to 262,144 UTF-16 code units when decoding but refuses to encode more than 32,767. See the text component format.

Trait Implementations§

Source§

impl Clone for CodecKind

Source§

fn clone(&self) -> CodecKind

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for CodecKind

Source§

impl Debug for CodecKind

Source§

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

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

impl Display for CodecKind

Formats a codec kind using its protocol name, such as VarInt or Boolean.

Source§

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

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

impl Eq for CodecKind

Source§

impl Hash for CodecKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for CodecKind

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for CodecKind

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