1#ifndef PRISM_INTERNAL_BUFFER_H
2#define PRISM_INTERNAL_BUFFER_H
26void pm_buffer_init(
pm_buffer_t *buffer,
size_t capacity);
32void pm_buffer_append_zeroes(
pm_buffer_t *buffer,
size_t length);
38void pm_buffer_append_string(
pm_buffer_t *buffer, const
char *value,
size_t length);
41void pm_buffer_append_bytes(
pm_buffer_t *buffer, const uint8_t *value,
size_t length);
44void pm_buffer_append_byte(
pm_buffer_t *buffer, uint8_t value);
47void pm_buffer_append_varuint(
pm_buffer_t *buffer, uint32_t value);
50void pm_buffer_append_varsint(
pm_buffer_t *buffer, int32_t value);
53void pm_buffer_append_double(
pm_buffer_t *buffer,
double value);
56bool pm_buffer_append_unicode_codepoint(
pm_buffer_t *buffer, uint32_t value);
63 PM_BUFFER_ESCAPING_RUBY,
64 PM_BUFFER_ESCAPING_JSON
65} pm_buffer_escaping_t;
68void pm_buffer_append_source(
pm_buffer_t *buffer,
const uint8_t *source,
size_t length, pm_buffer_escaping_t escaping);
71void pm_buffer_prepend_string(
pm_buffer_t *buffer,
const char *value,
size_t length);
86size_t pm_buffer_index(
const pm_buffer_t *buffer,
char value);
89void pm_buffer_insert(
pm_buffer_t *buffer,
size_t index,
const char *value,
size_t length);
A wrapper around a contiguous block of allocated memory.