aboutsummaryrefslogtreecommitdiff
#ifndef STR_H
#define STR_H

#include <stdbool.h>

typedef struct _String
{
    char *data;
    unsigned int length;
    unsigned int allocated_length;
} String;

extern String *string_create( const char *init );
extern String *string_create_by_size( unsigned int reserved_size);

extern void string_assign( String *string_, const char *val );

extern void string_append( String *string_, const char *val );
extern void string_append_char( String *string_, char c );

extern void string_insert( String *string_, int index, const char *val);
extern void string_insert_char( String *string_, int index, char val);

extern void string_free( String *string_ );

extern unsigned int string_hash( String *string_ );
extern bool string_equal( String *a, String *b );

#endif // STR_H