|
// retoor <retoor@molodetz.nl>
|
|
|
|
#ifndef R_STRING_H
|
|
#define R_STRING_H
|
|
|
|
#include "../r_error.h"
|
|
#include <stddef.h>
|
|
#include <stdbool.h>
|
|
|
|
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
|