Functions for building buffers with primitive types.
More...
|
typedef struct db_builder_internal * | db_builder |
| Opaque builder handle for constructing buffers efficiently.
|
|
|
DB_DEF db_builder | db_builder_new (size_t initial_capacity) |
| Create a new buffer builder.
|
|
DB_DEF db_builder | db_builder_from_buffer (db_buffer buf) |
| Create builder from existing buffer (continues at end)
|
|
DB_DEF db_builder | db_builder_retain (db_builder builder) |
| Increase builder reference count (share ownership)
|
|
DB_DEF void | db_builder_release (db_builder *builder_ptr) |
| Decrease builder reference count and potentially free builder.
|
|
DB_DEF db_buffer | db_builder_finish (db_builder *builder_ptr) |
| Finalize builder and return the constructed buffer.
|
|
DB_DEF size_t | db_builder_size (db_builder builder) |
| Get current write position in builder.
|
|
DB_DEF size_t | db_builder_capacity (db_builder builder) |
| Get current capacity of builder.
|
|
DB_DEF void | db_builder_clear (db_builder builder) |
| Clear builder contents.
|
|
DB_DEF int | db_builder_append_uint8 (db_builder builder, uint8_t value) |
| Write uint8 value.
|
|
DB_DEF int | db_builder_append_uint16_le (db_builder builder, uint16_t value) |
| Write uint16 value in little-endian format.
|
|
DB_DEF int | db_builder_append_uint16_be (db_builder builder, uint16_t value) |
| Write uint16 value in big-endian format.
|
|
DB_DEF int | db_builder_append_uint32_le (db_builder builder, uint32_t value) |
| Write uint32 value in little-endian format.
|
|
DB_DEF int | db_builder_append_uint32_be (db_builder builder, uint32_t value) |
| Write uint32 value in big-endian format.
|
|
DB_DEF int | db_builder_append_uint64_le (db_builder builder, uint64_t value) |
| Write uint64 value in little-endian format.
|
|
DB_DEF int | db_builder_append_uint64_be (db_builder builder, uint64_t value) |
| Write uint64 value in big-endian format.
|
|
DB_DEF int | db_builder_append (db_builder builder, const void *data, size_t size) |
| Write raw bytes.
|
|
DB_DEF int | db_builder_append_cstring (db_builder builder, const char *str) |
| Write null-terminated string (without null terminator)
|
|
DB_DEF int | db_builder_append_buffer (db_builder builder, db_buffer buf) |
| Append buffer contents.
|
|
Functions for building buffers with primitive types.
◆ db_builder
Opaque builder handle for constructing buffers efficiently.
◆ db_builder_append()
DB_DEF int db_builder_append |
( |
db_builder |
builder, |
|
|
const void * |
data, |
|
|
size_t |
size |
|
) |
| |
Write raw bytes.
- Parameters
-
builder | Builder instance |
data | Data to write |
size | Number of bytes to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_buffer()
Append buffer contents.
- Parameters
-
builder | Builder instance |
buf | Buffer to append |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_cstring()
Write null-terminated string (without null terminator)
- Parameters
-
builder | Builder instance |
str | String to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint16_be()
Write uint16 value in big-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint16_le()
Write uint16 value in little-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint32_be()
Write uint32 value in big-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint32_le()
Write uint32 value in little-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint64_be()
Write uint64 value in big-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint64_le()
Write uint64 value in little-endian format.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_append_uint8()
Write uint8 value.
- Parameters
-
builder | Builder instance |
value | Value to write |
- Returns
- 0 on success, -1 on error
◆ db_builder_capacity()
Get current capacity of builder.
- Parameters
-
- Returns
- Current capacity in bytes
◆ db_builder_clear()
Clear builder contents.
- Parameters
-
◆ db_builder_finish()
Finalize builder and return the constructed buffer.
- Parameters
-
builder_ptr | Pointer to builder (will be set to NULL) |
- Returns
- Constructed buffer
◆ db_builder_from_buffer()
Create builder from existing buffer (continues at end)
- Parameters
-
- Returns
- New builder instance
◆ db_builder_new()
Create a new buffer builder.
- Parameters
-
initial_capacity | Initial capacity in bytes |
- Returns
- New builder instance
- Example:
printf(
"Built buffer with %zu bytes\n",
db_size(buf));
char * db_buffer
Buffer handle - points directly to buffer data.
Definition dynamic_buffer.h:173
DB_DEF size_t db_size(db_buffer buf)
Get current size of buffer in bytes.
DB_DEF db_buffer db_builder_finish(db_builder *builder_ptr)
Finalize builder and return the constructed buffer.
DB_DEF db_builder db_builder_new(size_t initial_capacity)
Create a new buffer builder.
struct db_builder_internal * db_builder
Opaque builder handle for constructing buffers efficiently.
Definition dynamic_buffer.h:462
DB_DEF int db_builder_append_uint16_le(db_builder builder, uint16_t value)
Write uint16 value in little-endian format.
DB_DEF int db_builder_append_cstring(db_builder builder, const char *str)
Write null-terminated string (without null terminator)
DB_DEF void db_release(db_buffer *buf_ptr)
Decrease reference count and potentially free buffer.
◆ db_builder_release()
Decrease builder reference count and potentially free builder.
- Parameters
-
builder_ptr | Pointer to builder variable (will be set to NULL) |
◆ db_builder_retain()
Increase builder reference count (share ownership)
- Parameters
-
builder | Builder to retain (must not be NULL) |
- Returns
- The same builder for convenience
◆ db_builder_size()
Get current write position in builder.
- Parameters
-
- Returns
- Current position in bytes