// retoor #ifndef R_STRING_H #define R_STRING_H #include "../r_error.h" #include #include typedef struct string_t *string_handle; string_handle string_create(const char *str); string_handle string_create_empty(void); string_handle string_create_n(const char *str, size_t len); string_handle string_format(const char *fmt, ...); string_handle string_clone(const char *str); string_handle string_clone_handle(string_handle s); string_handle string_concat(const char *a, const char *b); string_handle string_concat_handle(string_handle a, const char *b); void string_append(string_handle s, const char *str); void string_append_n(string_handle s, const char *str, size_t len); void string_appendf(string_handle s, const char *fmt, ...); void string_append_handle(string_handle dest, string_handle src); size_t string_length(string_handle s); size_t string_capacity(string_handle s); const char *string_c_str(string_handle s); char *string_release(string_handle s); bool string_equals(string_handle a, string_handle b); bool string_equals_c_str(string_handle s, const char *str); bool string_is_empty(string_handle s); void string_clear(string_handle s); void string_destroy(string_handle s); #endif