MySQL 9.0.0
Source Code Documentation
classic_protocol::Codec< borrowable::wire::VarInt > Class Reference

codec for variable length integers. More...

#include <classic_protocol_codec_wire.h>

Inheritance diagram for classic_protocol::Codec< borrowable::wire::VarInt >:
[legend]

Public Types

using value_type = borrowable::wire::VarInt
 
using __base = impl::EncodeBase< Codec< value_type > >
 

Public Member Functions

constexpr Codec (value_type v, capabilities::value_type caps)
 
- Public Member Functions inherited from classic_protocol::impl::EncodeBase< Codec< borrowable::wire::VarInt > >
constexpr EncodeBase (capabilities::value_type caps)
 
constexpr size_t size () const noexcept
 
stdx::expected< size_t, std::error_code > encode (net::mutable_buffer buffer) const
 
constexpr capabilities::value_type caps () const noexcept
 

Static Public Member Functions

static constexpr size_t max_size () noexcept
 
static stdx::expected< std::pair< size_t, value_type >, std::error_code > decode (const net::const_buffer &buffer, capabilities::value_type caps)
 

Public Attributes

friend __base
 

Static Public Attributes

static constexpr uint8_t varint_16 {0xfc}
 
static constexpr uint8_t varint_24 {0xfd}
 
static constexpr uint8_t varint_64 {0xfe}
 

Private Member Functions

template<class Accumulator >
constexpr auto accumulate_fields (Accumulator &&accu) const
 

Private Attributes

const value_type v_
 

Detailed Description

codec for variable length integers.

note: encoded as little endian

0x00
...
0xfa -> 0xfa
0xfb [undefined]
0xfc 0x.. 0x..
0xfd 0x.. 0x.. 0x..

3.21:
0xfe 0x.. 0x.. 0x.. 0x.. 0x00
[1 + 5 bytes read, only 4 bytes used]

4.0:
0xfe 0x.. 0x.. 0x.. 0x.. 0x.. 0x.. 0x.. 0x..
[1 + 8 bytes read, only 4 bytes used]

Member Typedef Documentation

◆ __base

◆ value_type

Constructor & Destructor Documentation

◆ Codec()

Member Function Documentation

◆ accumulate_fields()

template<class Accumulator >
constexpr auto classic_protocol::Codec< borrowable::wire::VarInt >::accumulate_fields ( Accumulator &&  accu) const
inlineconstexprprivate

◆ decode()

static stdx::expected< std::pair< size_t, value_type >, std::error_code > classic_protocol::Codec< borrowable::wire::VarInt >::decode ( const net::const_buffer buffer,
capabilities::value_type  caps 
)
inlinestatic

◆ max_size()

static constexpr size_t classic_protocol::Codec< borrowable::wire::VarInt >::max_size ( )
inlinestaticconstexprnoexcept

Member Data Documentation

◆ __base

◆ v_

◆ varint_16

constexpr uint8_t classic_protocol::Codec< borrowable::wire::VarInt >::varint_16 {0xfc}
staticconstexpr

◆ varint_24

constexpr uint8_t classic_protocol::Codec< borrowable::wire::VarInt >::varint_24 {0xfd}
staticconstexpr

◆ varint_64

constexpr uint8_t classic_protocol::Codec< borrowable::wire::VarInt >::varint_64 {0xfe}
staticconstexpr

The documentation for this class was generated from the following file: