Initial release commit

This commit is contained in:
Riley-King
2025-02-27 00:01:01 +11:00
parent 2522eacb86
commit a610e67325
20 changed files with 2322 additions and 0 deletions

47
include/simple_string.h Normal file
View File

@@ -0,0 +1,47 @@
#include <malloc.h>
#include <string>
class simple_string
{
public:
simple_string(const simple_string& src);
simple_string& operator =(const simple_string& src);
simple_string(simple_string&& src) noexcept;
simple_string& operator =(simple_string&& src) noexcept;
simple_string(const char* beg, const char* end);
simple_string(const char* str, const size_t slen);
simple_string(const char* str);
simple_string(const size_t initial_capacity, const char fill_value='\0');
simple_string(const std::string& str);
simple_string();
~simple_string(void);
simple_string& append(const char* other);
simple_string& append(const char* beg, const char* end);
simple_string& append(const char* other, const size_t slen);
simple_string& append(const std::string& other);
simple_string& append(const simple_string& other);
simple_string& append(const char x);
void resize(const size_t new_size);
void expand(const size_t extra_capacity);
void reserve(const size_t new_capacity);
const char* c_str(void) const noexcept;
char* data(void) noexcept;
size_t size(void) const noexcept;
char* begin(void) noexcept;
char* end(void) noexcept;
const char* cbegin(void) const noexcept;
const char* cend(void) const noexcept;
char& operator [](const size_t idx) noexcept;
const char& operator [](const size_t idx) const noexcept;
private:
char* m_data = nullptr;
size_t m_size = 0;
size_t m_capacity = 0;
};