2.1.3 String View

struct ZixStringView

An immutable slice of a string.

This type is used for many string parameters, to allow referring to slices of strings in-place and to avoid redundant string measurement.

const char *data

Pointer to the first character.

size_t length

Length of string in bytes.

ZixStringView zix_empty_string(void)

Return a view of an empty string.

ZixStringView zix_substring(const char *const str, const size_t len)

Return a view of a substring, or a premeasured string.

This makes either a view of a slice of a string (which may not be null terminated), or a view of a string that has already been measured. This is faster than zix_string() for dynamic strings since it does not call strlen, so should be used when the length of the string is already known.

Parameters:
  • str – Pointer to the start of the substring.

  • len – Length of the substring in bytes, not including the trailing null terminator if present.

ZixStringView zix_string(const char *const str)

Return a view of an entire string by measuring it.

This makes a view of the given string by measuring it with strlen.

Parameters:
  • str – Pointer to the start of a null-terminated C string, or null.

char *zix_string_view_copy(ZixAllocator *allocator, ZixStringView view)

Copy a string view into a newly allocated null-terminated string.