11#define EO_CHAR_MAX 253
13#define EO_SHORT_MAX 64009
15#define EO_THREE_MAX 16194277
17#define EO_INT_MAX 4097152081
19#define EO_NUMBER_PADDING 0xFE
21#define EO_BREAK_BYTE 0xFF
416 if (!serialize || !reader)
430 if (!serialize || !writer)
EoResult eo_writer_add_string(EoWriter *writer, const char *value)
EoResult eo_string_to_windows_1252(const char *value, char **out_value)
EoResult eo_reader_get_fixed_encoded_string(EoReader *reader, size_t length, char **out_value)
bool eo_reader_get_chunked_reading_mode(const EoReader *reader)
static EoResult eo_serialize(const EoSerialize *serialize, EoWriter *writer)
EoResult eo_reader_get_string(EoReader *reader, char **out_value)
static size_t eo_get_size(const EoSerialize *serialize)
EoResult eo_reader_get_encoded_string(EoReader *reader, char **out_value)
EoResult eo_writer_add_encoded_string(EoWriter *writer, const char *value)
EoResult eo_writer_add_fixed_string(EoWriter *writer, const char *value, size_t length, bool padded)
EoResult eo_reader_get_int(EoReader *reader, int32_t *out_value)
int32_t eo_decode_number(const uint8_t *bytes, size_t length)
EoResult eo_writer_add_byte(EoWriter *writer, uint8_t value)
EoWriter eo_writer_init_with_capacity(size_t capacity)
EoResult eo_reader_get_short(EoReader *reader, int32_t *out_value)
void eo_reader_set_chunked_reading_mode(EoReader *reader, bool enabled)
EoResult eo_reader_next_chunk(EoReader *reader)
EoResult eo_reader_get_char(EoReader *reader, int32_t *out_value)
EoResult eo_writer_add_short(EoWriter *writer, int32_t value)
void eo_encode_string(uint8_t *buf, size_t length)
EoResult eo_writer_add_bytes(EoWriter *writer, const uint8_t *data, size_t length)
bool eo_writer_get_string_sanitization_mode(const EoWriter *writer)
EoResult eo_writer_add_char(EoWriter *writer, int32_t value)
EoResult eo_writer_ensure_capacity(EoWriter *writer, size_t additional)
static uint8_t eo_packet_get_action(const EoPacket *packet)
Gets the action of an EO packet.
EoWriter eo_writer_init(void)
EoResult eo_reader_get_three(EoReader *reader, int32_t *out_value)
EoResult eo_writer_add_three(EoWriter *writer, int32_t value)
EoResult eo_writer_add_int(EoWriter *writer, int32_t value)
EoResult eo_writer_add_fixed_encoded_string(EoWriter *writer, const char *value, size_t length, bool padded)
void eo_writer_free(EoWriter *writer)
EoReader eo_reader_init(const uint8_t *data, size_t length)
void eo_decode_string(uint8_t *buf, size_t length)
EoResult eo_reader_get_bytes(EoReader *reader, size_t length, uint8_t **out_value)
void eo_writer_set_string_sanitization_mode(EoWriter *writer, bool enabled)
size_t eo_reader_remaining(const EoReader *reader)
static EoResult eo_deserialize(EoSerialize *serialize, EoReader *reader)
EoResult eo_reader_get_fixed_string(EoReader *reader, size_t length, char **out_value)
EoResult eo_encode_number(int32_t number, uint8_t out_bytes[4])
static uint8_t eo_packet_get_family(const EoPacket *packet)
Gets the family of an EO packet.
static void eo_free(EoSerialize *serialize)
EoResult eo_reader_get_byte(EoReader *reader, uint8_t *out_value)
uint8_t(* get_family)(const EoPacket *self)
uint8_t(* get_action)(const EoPacket *self)
const EoPacketVTable * vtable
bool chunked_reading_mode
EoResult(* deserialize)(EoSerialize *self, EoReader *reader)
EoResult(* serialize)(const EoSerialize *self, EoWriter *writer)
void(* free)(EoSerialize *self)
size_t(* get_size)(const EoSerialize *self)
const EoSerializeVTable * vtable
bool string_sanitization_mode