9#include "prism/compiler/exported.h"
10#include "prism/compiler/nonnull.h"
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.
Definition stringy.h:18
const uint8_t * source
A pointer to the start of the string.
Definition stringy.h:20
size_t length
The length of the string in bytes of memory.
Definition stringy.h:23
@ PM_STRING_CONSTANT
This string is a constant string, and should not be freed.
Definition stringy.h:28
@ PM_STRING_SHARED
This is a slice of another string, and should not be freed.
Definition stringy.h:31