SSSTR(7)                         Ssstr Manual                         SSSTR(7)



NAME
       ssstr, ss8str - short-string-optimized byte string routines

SYNOPSIS
       #include <ss8str.h>

DESCRIPTION
       ssstr  is  a header-only library for representing and manipulating byte
       strings.

   String representation
       Strings are represented by the opaque type ss8str,  which  is  suitable
       for  use  as  a regular automatic (stack) variable, or as a member of a
       larger data structure.  (It is 32 bytes  on  64-bit  platforms  and  16
       bytes on 32-bit platforms.)

       When  the  string is small, it is stored directly in the ss8str object;
       otherwise, dynamic (heap) storage is allocated to store the string.

       The ss8str stores the length of the  string  explicitly,  allowing  the
       handling  of  strings  that  contain embedded null bytes in addition to
       more efficient operations.

       Objects of type ss8str must be initialized before use and destroyed af‐
       ter use, exactly once each.  See ss8_init(3) and ss8_destroy(3).

FUNCTIONS
   Initialization and cleanup
       ss8_init(3),   ss8_init_copy(3),   ss8_init_move(3),  ss8_init_move_de‐
       stroy(3), ss8_destroy(3), and variants  of  ss8_init_copy  with  _cstr,
       _bytes, _ch, or _ch_n

   Basic string operations
       ss8_clear(3), ss8_is_empty(3), ss8_len(3)

   Copying and assigning strings
       ss8_copy(3),  ss8_init_copy(3),  and their variants with _cstr, _bytes,
       _ch, or _ch_n

   Moving strings
       ss8_move(3), ss8_move_destroy(3),  ss8_init_move(3),  ss8_init_move_de‐
       stroy(3), ss8_swap(3)

   Passing ss8str to C string functions
       ss8_cstr(3), ss8_cstr_suffix(3)

   Using ss8str as the destination for functions producing C strings
       ss8_mutable_cstr(3),     ss8_mutable_cstr_suffix(3),    ss8_set_len(3),
       ss8_set_len_to_cstrlen(3), ss8_grow_len(3)

   Converting from standard C strings and byte buffers
       ss8_copy_cstr(3),       ss8_copy_bytes(3),       ss8_init_copy_cstr(3),
       ss8_init_copy_bytes(3)

   Converting to standard C strings and byte buffers
       ss8_copy_to_cstr(3), ss8_copy_to_bytes(3)

   Accessing single bytes in strings
       ss8_at(3),  ss8_front(3), ss8_back(3), ss8_set_at(3), ss8_set_front(3),
       ss8_set_back(3)

   Concatenating strings
       ss8_cat(3) and its variants with _cstr, _bytes, _ch, or _ch_n

   Managing buffer capacity
       ss8_capacity(3), ss8_reserve(3), ss8_shrink_to_fit(3)

   Getting substrings
       ss8_copy_substr(3), ss8_substr_inplace(3)

   Inserting, replacing, and erasing substrings
       ss8_insert(3), ss8_replace(3), and their variants with  _cstr,  _bytes,
       _ch, or _ch_n; ss8_erase(3)

   Comparing strings
       ss8_cmp(3),    ss8_equals(3),    ss8_contains(3),   ss8_starts_with(3),
       ss8_ends_with(3), and their variants with _cstr, _bytes, or _ch

   Searching for strings
       ss8_find(3), ss8_rfind(3), and their variants with _cstr, _bytes,  _ch,
       or _not_ch

   Searching for characters
       ss8_find_first_of(3),   ss8_find_first_not_of(3),  ss8_find_last_of(3),
       ss8_find_last_not_of(3), and their variants with _cstr or _bytes

   Trimming certain characters from the ends
       ss8_strip(3), ss8_lstrip(3), ss8_rstrip(3),  and  their  variants  with
       _cstr, _bytes, or _ch

   Formatting strings
       ss8_sprintf(3),  ss8_cat_sprintf(3), and their variants with _snprintf,
       _vsprintf, or _vsnprintf

SEE ALSO
       bstring(3), string(3)



SSSTR                             2023-12-30                          SSSTR(7)