edit | blame | history | raw
All types are in little-endian.

## `Buffer`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  04 00 01 02 04 05                                ......
```

| Name   | Description                         | Type         |
|--------|-------------------------------------|--------------|
| Length | The length of the buffer, in bytes. | `u16`        |
| Data   | The raw data of the buffer.         | `u8[Length]` |

The length of the data is `4`, with the bytes being: `.{ 1, 2, 3, 4 }`.

## `String`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  0E 00 4C 6F 67 69 6E 50 72 6F 74 6F 63 6F 6C 00  ..LoginProtocol.
```

| Name   | Description                                                 | Type                |
|--------|-------------------------------------------------------------|---------------------|
| Buffer | The UTF-8 encoded, null-terminated string data as a buffer. | [`Buffer`](#buffer) |

Strings in RendezVous are null-terminated [buffers](#buffer) in UTF-8 encoding.

## `List`
Example:
```
Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
00000000  01 00 00 00 12 00 43 6C 69 65 6E 74 56 65 72 73  ......ClientVers
00000010  69 6F 6E 49 6E 66 6F 00 01 00                    ionInfo...
```

| Name            | Description                                 | Type                 |
|-----------------|---------------------------------------------|----------------------|
| Number of Items | The number of individual items in the list. | `u32`                |
| Items           | The items in the list.                      | `T[Number of Items]` |

## `UUID`

> TODO