// name, header width, reader, [lower, upper] encoding
X(posfixint, 1, read_embedded_u8, 0x00, 0x7f)
X(negfixint, 1, read_embedded_s8, 0xe0, 0xff)
X(fixmap, 1, read_via_mask_0xf, 0x80, 0x8f)
X(fixarray, 1, read_via_mask_0xf, 0x90, 0x9f)
X(fixstr, 1, read_via_mask_0x1f, 0xa0, 0xbf)
X(nil, 1, read_zero, 0xc0, 0xc0)
X(never_used, 1, read_zero, 0xc1, 0xc1)
X(f, 1, read_via_mask_0x1, 0xc2, 0xc2)
X(t, 1, read_via_mask_0x1, 0xc3, 0xc3)
X(bin8, 2, read_size_field_u8, 0xc4, 0xc4)
X(bin16, 3, read_size_field_u16, 0xc5, 0xc5)
X(bin32, 5, read_size_field_u32, 0xc6, 0xc6)
X(ext8, 3, read_size_field_u8, 0xc7, 0xc7)
X(ext16, 4, read_size_field_u16, 0xc8, 0xc8)
X(ext32, 6, read_size_field_u32, 0xc9, 0xc9)
X(float32, 5, read_zero, 0xca, 0xca)
X(float64, 9, read_zero, 0xcb, 0xcb)
X(uint8, 2, read_size_field_u8, 0xcc, 0xcc)
X(uint16, 3, read_size_field_u16, 0xcd, 0xcd)
X(uint32, 5, read_size_field_u32, 0xce, 0xce)
X(uint64, 9, read_size_field_u64, 0xcf, 0xcf)
X(int8, 2, read_size_field_s8, 0xd0, 0xd0)
X(int16, 3, read_size_field_s16, 0xd1, 0xd1)
X(int32, 5, read_size_field_s32, 0xd2, 0xd2)
X(int64, 9, read_size_field_s64, 0xd3, 0xd3)
X(fixext1, 3, read_zero, 0xd4, 0xd4)
X(fixext2, 4, read_zero, 0xd5, 0xd5)
X(fixext4, 6, read_zero, 0xd6, 0xd6)
X(fixext8, 10, read_zero, 0xd7, 0xd7)
X(fixext16, 18, read_zero, 0xd8, 0xd8)
X(str8, 2, read_size_field_u8, 0xd9, 0xd9)
X(str16, 3, read_size_field_u16, 0xda, 0xda)
X(str32, 5, read_size_field_u32, 0xdb, 0xdb)
X(array16, 3, read_size_field_u16, 0xdc, 0xdc)
X(array32, 5, read_size_field_u32, 0xdd, 0xdd)
X(map16, 3, read_size_field_u16, 0xde, 0xde)
X(map32, 5, read_size_field_u32, 0xdf, 0xdf)
