From 49e9eaac4fbe2f8eceed633a05c9628f6ade3bf8 Mon Sep 17 00:00:00 2001 From: Niels Lohmann Date: Sun, 25 Oct 2026 17:56:43 +0100 Subject: [PATCH] Address review of the MessagePack documentation Name parse_error.113 for a 0xC1 map key, move the duplicate-key sentence out of the ext section, and keep the 0xC1 row in marker order. Signed-off-by: Niels Lohmann --- .../docs/features/binary_formats/messagepack.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/docs/mkdocs/docs/features/binary_formats/messagepack.md b/docs/mkdocs/docs/features/binary_formats/messagepack.md index f752ea2c8..cca6e7660 100644 --- a/docs/mkdocs/docs/features/binary_formats/messagepack.md +++ b/docs/mkdocs/docs/features/binary_formats/messagepack.md @@ -136,6 +136,7 @@ The library maps MessagePack types to JSON value types as follows: | fixarray | array | 0x90..0x9F | | fixstr | string | 0xA0..0xBF | | nil | `null` | 0xC0 | +| (never used) | – | 0xC1 | | false | `false` | 0xC2 | | true | `true` | 0xC3 | | float 32 | number_float | 0xCA | @@ -167,10 +168,13 @@ The library maps MessagePack types to JSON value types as follows: | fixext 8 | binary | 0xD7 | | fixext 16 | binary | 0xD8 | | negative fixint | number_integer | 0xE0-0xFF | -| (never used) | – | 0xC1 | -The byte 0xC1 is reserved as "never used" by the specification and is rejected with -[`parse_error.112`](../../home/exceptions.md#jsonexceptionparse_error112). +The byte 0xC1 is reserved as "never used" by the specification. As a value it is rejected with +[`parse_error.112`](../../home/exceptions.md#jsonexceptionparse_error112) (`invalid byte: 0xC1`); as a map key it is +rejected with [`parse_error.113`](../../home/exceptions.md#jsonexceptionparse_error113) and the generic "expected length +specification" message, because the key is read as a string. + +Duplicate keys in a map are accepted; the last value wins. ### Extension types (ext, fixext) @@ -189,8 +193,6 @@ written as the reserved negative ext types (255 as -1), so `json::binary({1,2,3, [`out_of_range.415`](../../home/exceptions.md#jsonexceptionout_of_range415). The payload length is limited to 4294967295 bytes like all other lengths. -Duplicate keys in a map are accepted; the last value wins. - !!! info Any MessagePack output created by `to_msgpack` can be successfully parsed by `from_msgpack`.