mcproto-derive 0.5.0

Derive macros for Minecraft protocol types.
Documentation
# mcproto-derive

Derive macros for `mcproto-types`.

## `ProtocolEnum`

`ProtocolEnum` derives a numeric Minecraft protocol enum codec for a fieldless
Rust enum:

```rust
use mcproto_types::{ProtocolEnum, TypeCodec, basic::VarInt};

#[derive(Debug, Clone, Copy, PartialEq, Eq, ProtocolEnum)]
#[protocol_enum(repr = VarInt)]
enum GameMode {
    Survival = 0,
    Creative = 1,
}

let mut encoded = Vec::new();
GameMode::Creative.encode(&mut encoded)?;
assert_eq!(encoded, [0x01]);
# Ok::<(), mcproto_codec::error::CodecError>(())
```

## `TypeStructCodec`

`TypeStructCodec` derives a sequential [`TypeCodec`] implementation for named,
tuple, unit, and generic structs. Fields are encoded in declaration order and
must implement `TypeCodec`.

```rust
use mcproto_types::{TypeStructCodec, VarInt};

#[derive(TypeStructCodec)]
#[type_struct_codec(kind = TypeStruct)]
struct Pair {
    first: VarInt,
    second: VarInt,
}
```