mk_reader_consumedfunction
size_t mk_reader_consumed(const mk_reader_t *reader)Get the number of decoded bytes.
| Parameter | Type | Description |
|---|---|---|
reader | const mk_reader_t * | Reader to inspect. |
Returns Number of bytes consumed.
#include <modkit/codec.h>42 functions · 4 structs · 4 typedefs
Bounded binary readers and writers for stable portable formats.
mk_reader_consumedfunctionsize_t mk_reader_consumed(const mk_reader_t *reader)Get the number of decoded bytes.
| Parameter | Type | Description |
|---|---|---|
reader | const mk_reader_t * | Reader to inspect. |
Returns Number of bytes consumed.
mk_reader_initfunctionvoid mk_reader_init(mk_reader_t *reader, const void *data, size_t size)Initialize a reader over a borrowed byte span.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Reader to initialize. |
data | const void * | Source bytes. |
size | size_t | Source size in bytes. |
mk_reader_okfunctionbool mk_reader_ok(const mk_reader_t *reader)Test whether every reader operation has succeeded.
| Parameter | Type | Description |
|---|---|---|
reader | const mk_reader_t * | Reader to inspect. |
Returns True when the reader has not failed.
mk_reader_read_boolfunctionbool mk_reader_read_bool(mk_reader_t *reader, bool *value)Decode a boolean value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | bool * | Receives the value. |
Returns True on success.
mk_reader_read_bytesfunctionbool mk_reader_read_bytes(mk_reader_t *reader, void *data, size_t size)Copy unframed bytes into a caller buffer.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
data | void * | Destination buffer. |
size | size_t | Byte count. |
Returns True on success.
mk_reader_read_f32functionbool mk_reader_read_f32(mk_reader_t *reader, float *value)Decode an IEEE-754 32-bit little-endian float.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | float * | Receives the value. |
Returns True on success.
mk_reader_read_f64functionbool mk_reader_read_f64(mk_reader_t *reader, double *value)Decode an IEEE-754 64-bit little-endian float.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | double * | Receives the value. |
Returns True on success.
mk_reader_read_i16functionbool mk_reader_read_i16(mk_reader_t *reader, int16_t *value)Decode a signed 16-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | int16_t * | Receives the value. |
Returns True on success.
mk_reader_read_i32functionbool mk_reader_read_i32(mk_reader_t *reader, int32_t *value)Decode a signed 32-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | int32_t * | Receives the value. |
Returns True on success.
mk_reader_read_i64functionbool mk_reader_read_i64(mk_reader_t *reader, int64_t *value)Decode a signed 64-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | int64_t * | Receives the value. |
Returns True on success.
mk_reader_read_i8functionbool mk_reader_read_i8(mk_reader_t *reader, int8_t *value)Decode a signed 8-bit value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | int8_t * | Receives the value. |
Returns True on success.
mk_reader_read_spanfunctionbool mk_reader_read_span(mk_reader_t *reader, mk_bytes_view_t *value)Decode a length-prefixed byte span without copying.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | mk_bytes_view_t * | Receives a borrowed span. |
Returns True on success.
mk_reader_read_stringfunctionbool mk_reader_read_string(mk_reader_t *reader, mk_string_view_t *value)Decode and validate a length-prefixed UTF-8 string without copying.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | mk_string_view_t * | Receives a borrowed string view. |
Returns True on success.
mk_reader_read_u16functionbool mk_reader_read_u16(mk_reader_t *reader, uint16_t *value)Decode an unsigned 16-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | uint16_t * | Receives the value. |
Returns True on success.
mk_reader_read_u32functionbool mk_reader_read_u32(mk_reader_t *reader, uint32_t *value)Decode an unsigned 32-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | uint32_t * | Receives the value. |
Returns True on success.
mk_reader_read_u64functionbool mk_reader_read_u64(mk_reader_t *reader, uint64_t *value)Decode an unsigned 64-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | uint64_t * | Receives the value. |
Returns True on success.
mk_reader_read_u8functionbool mk_reader_read_u8(mk_reader_t *reader, uint8_t *value)Decode an unsigned 8-bit value.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | uint8_t * | Receives the value. |
Returns True on success.
mk_reader_read_var_i64functionbool mk_reader_read_var_i64(mk_reader_t *reader, int64_t *value)Decode a zigzag-encoded signed variable-length integer.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | int64_t * | Receives the value. |
Returns True on success.
mk_reader_read_var_u64functionbool mk_reader_read_var_u64(mk_reader_t *reader, uint64_t *value)Decode an unsigned variable-length integer.
| Parameter | Type | Description |
|---|---|---|
reader | mk_reader_t * | Source reader. |
value | uint64_t * | Receives the value. |
Returns True on success.
mk_reader_remainingfunctionsize_t mk_reader_remaining(const mk_reader_t *reader)Get the number of unread bytes.
| Parameter | Type | Description |
|---|---|---|
reader | const mk_reader_t * | Reader to inspect. |
Returns Number of bytes remaining.
mk_writer_datafunctionconst void * mk_writer_data(const mk_writer_t *writer)Get the start of the encoded data.
| Parameter | Type | Description |
|---|---|---|
writer | const mk_writer_t * | Writer to inspect. |
Returns The borrowed destination-buffer pointer.
mk_writer_initfunctionvoid mk_writer_init(mk_writer_t *writer, void *data, size_t capacity)Initialize a writer over a caller-owned buffer.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Writer to initialize. |
data | void * | Destination buffer. |
capacity | size_t | Buffer size in bytes. |
mk_writer_okfunctionbool mk_writer_ok(const mk_writer_t *writer)Test whether every writer operation has succeeded.
| Parameter | Type | Description |
|---|---|---|
writer | const mk_writer_t * | Writer to inspect. |
Returns True when the writer has not failed.
mk_writer_remainingfunctionsize_t mk_writer_remaining(const mk_writer_t *writer)Get the unused buffer capacity.
| Parameter | Type | Description |
|---|---|---|
writer | const mk_writer_t * | Writer to inspect. |
Returns Number of writable bytes remaining.
mk_writer_sizefunctionsize_t mk_writer_size(const mk_writer_t *writer)Get the encoded byte count.
| Parameter | Type | Description |
|---|---|---|
writer | const mk_writer_t * | Writer to inspect. |
Returns Number of bytes written.
mk_writer_write_boolfunctionbool mk_writer_write_bool(mk_writer_t *writer, bool value)Encode a boolean value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | bool | Value to encode. |
Returns True on success.
mk_writer_write_bytesfunctionbool mk_writer_write_bytes(mk_writer_t *writer, const void *data, size_t size)Append unframed bytes.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
data | const void * | Bytes to append. |
size | size_t | Byte count. |
Returns True on success.
mk_writer_write_f32functionbool mk_writer_write_f32(mk_writer_t *writer, float value)Encode an IEEE-754 32-bit float in little-endian order.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | float | Value to encode. |
Returns True on success.
mk_writer_write_f64functionbool mk_writer_write_f64(mk_writer_t *writer, double value)Encode an IEEE-754 64-bit float in little-endian order.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | double | Value to encode. |
Returns True on success.
mk_writer_write_i16functionbool mk_writer_write_i16(mk_writer_t *writer, int16_t value)Encode a signed 16-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | int16_t | Value to encode. |
Returns True on success.
mk_writer_write_i32functionbool mk_writer_write_i32(mk_writer_t *writer, int32_t value)Encode a signed 32-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | int32_t | Value to encode. |
Returns True on success.
mk_writer_write_i64functionbool mk_writer_write_i64(mk_writer_t *writer, int64_t value)Encode a signed 64-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | int64_t | Value to encode. |
Returns True on success.
mk_writer_write_i8functionbool mk_writer_write_i8(mk_writer_t *writer, int8_t value)Encode a signed 8-bit value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | int8_t | Value to encode. |
Returns True on success.
mk_writer_write_spanfunctionbool mk_writer_write_span(mk_writer_t *writer, const void *data, size_t size)Encode a length-prefixed byte span.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
data | const void * | Span bytes. |
size | size_t | Span length. |
Returns True on success.
mk_writer_write_stringfunctionbool mk_writer_write_string(mk_writer_t *writer, const char *text)Encode a length-prefixed null-terminated UTF-8 string.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
text | const char * | UTF-8 string. |
Returns True when the input is valid and fits.
mk_writer_write_string_nfunctionbool mk_writer_write_string_n(mk_writer_t *writer, const char *text, size_t size)Encode a length-prefixed UTF-8 byte span.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
text | const char * | UTF-8 bytes. |
size | size_t | Byte length. |
Returns True when the input is valid and fits.
mk_writer_write_u16functionbool mk_writer_write_u16(mk_writer_t *writer, uint16_t value)Encode an unsigned 16-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | uint16_t | Value to encode. |
Returns True on success.
mk_writer_write_u32functionbool mk_writer_write_u32(mk_writer_t *writer, uint32_t value)Encode an unsigned 32-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | uint32_t | Value to encode. |
Returns True on success.
mk_writer_write_u64functionbool mk_writer_write_u64(mk_writer_t *writer, uint64_t value)Encode an unsigned 64-bit little-endian value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | uint64_t | Value to encode. |
Returns True on success.
mk_writer_write_u8functionbool mk_writer_write_u8(mk_writer_t *writer, uint8_t value)Encode an unsigned 8-bit value.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | uint8_t | Value to encode. |
Returns True on success.
mk_writer_write_var_i64functionbool mk_writer_write_var_i64(mk_writer_t *writer, int64_t value)Encode a signed variable-length integer using zigzag encoding.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | int64_t | Value to encode. |
Returns True on success.
mk_writer_write_var_u64functionbool mk_writer_write_var_u64(mk_writer_t *writer, uint64_t value)Encode an unsigned variable-length integer.
| Parameter | Type | Description |
|---|---|---|
writer | mk_writer_t * | Destination writer. |
value | uint64_t | Value to encode. |
Returns True on success.
mk_bytes_viewstructBorrowed view of a byte span decoded from a reader.
| Field | Type | Description |
|---|---|---|
data | const uint8_t * | First byte in the span. |
size | size_t | Span length in bytes. |
mk_readerstructBounds-checked decoder over a borrowed byte span.
| Field | Type | Description |
|---|---|---|
data | const uint8_t * | Source buffer. |
size | size_t | Source buffer size in bytes. |
position | size_t | Number of bytes consumed. |
failed | bool | Sticky failure state. |
mk_string_viewstructBorrowed view of validated UTF-8 decoded from a reader.
| Field | Type | Description |
|---|---|---|
data | const char * | First UTF-8 byte; not necessarily null-terminated. |
size | size_t | UTF-8 length in bytes. |
mk_writerstructBounds-checked encoder over a caller-owned byte buffer.
| Field | Type | Description |
|---|---|---|
data | uint8_t * | Destination buffer. |
capacity | size_t | Writable buffer size in bytes. |
position | size_t | Number of bytes written. |
failed | bool | Sticky failure state. |
mk_bytes_view_ttypedeftypedef struct mk_bytes_view mk_bytes_view_tBorrowed view of a byte span decoded from a reader.
mk_reader_ttypedeftypedef struct mk_reader mk_reader_tBounds-checked decoder over a borrowed byte span.
mk_string_view_ttypedeftypedef struct mk_string_view mk_string_view_tBorrowed view of validated UTF-8 decoded from a reader.
mk_writer_ttypedeftypedef struct mk_writer mk_writer_tBounds-checked encoder over a caller-owned byte buffer.