#define PRISM_EXPORTED_FUNCTION
By default, we compile with -fvisibility=hidden.
#define PRISM_NONNULL(...)
Mark the parameters of a function as non-null.
PRISM_EXPORTED_FUNCTION void pm_string_constant_init(pm_string_t *string, const char *source, size_t length) PRISM_NONNULL(1)
Initialize a constant string that doesn't own its memory source.
PRISM_EXPORTED_FUNCTION void PRISM_EXPORTED_FUNCTION size_t pm_string_length(const pm_string_t *string) PRISM_NONNULL(1)
Returns the length associated with the string.
PRISM_EXPORTED_FUNCTION void pm_string_owned_init(pm_string_t *string, uint8_t *source, size_t length) PRISM_NONNULL(1
Initialize an owned string that is responsible for freeing allocated memory.
PRISM_EXPORTED_FUNCTION const uint8_t * pm_string_source(const pm_string_t *string) PRISM_NONNULL(1)
Returns the start pointer associated with the string.
A generic string type that can have various ownership semantics.
const uint8_t * source
A pointer to the start of the string.
size_t length
The length of the string in bytes of memory.
@ PM_STRING_CONSTANT
This string is a constant string, and should not be freed.
@ PM_STRING_SHARED
This is a slice of another string, and should not be freed.