#ifndef SMART_STRING_H
#define SMART_STRING_H

#include <sys/types.h>

/*
 * smart string cla^structure
 */
struct smart_string_s {
	char *string_ptr;
	size_t allocated;
	size_t length;
};

void smart_string_init(struct smart_string_s *ss);

void smart_string_resize(struct smart_string_s *ss, size_t size);

//~ void smart_string_resize_direct(struct smart_string_s *ss, size_t size);
//~
//~ void smart_string_resize_add(struct smart_string_s *ss, size_t size);
//~
//~ void smart_string_resize_pow2(struct smart_string_s *ss, size_t size);
//~
//~ void smart_string_resize_pow3(struct smart_string_s *ss, size_t size);

void smart_string_free(struct smart_string_s *ss);

#endif // SMART_STRING_H