mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-11 08:38:18 +03:00
71 lines
2.3 KiB
C++
71 lines
2.3 KiB
C++
/*
|
|
by korenkonder
|
|
GitHub/GitLab: korenkonder
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "../KKdLib/default.hpp"
|
|
#include "vector.hpp"
|
|
|
|
#define STRING_LENGTH (32 - sizeof(ssize_t) * 2)
|
|
#define STRING_NULL_LENGTH (STRING_LENGTH - 1)
|
|
#define WSTRING_LENGTH ((32 - sizeof(ssize_t) * 2) / sizeof(wchar_t))
|
|
#define WSTRING_NULL_LENGTH (WSTRING_LENGTH - 1)
|
|
|
|
struct string {
|
|
union {
|
|
char data[STRING_LENGTH];
|
|
char* ptr;
|
|
};
|
|
ssize_t length;
|
|
ssize_t capacity;
|
|
};
|
|
|
|
struct wstring {
|
|
union {
|
|
wchar_t data[WSTRING_LENGTH];
|
|
wchar_t* ptr;
|
|
};
|
|
ssize_t length;
|
|
ssize_t capacity;
|
|
};
|
|
|
|
extern const string string_empty;
|
|
extern const wstring wstring_empty;
|
|
|
|
vector_old(string)
|
|
vector_old(wstring)
|
|
vector_old_ptr(string)
|
|
vector_old_ptr(wstring)
|
|
|
|
extern void string_init(string* s);
|
|
extern void string_init(string* s, const char* str);
|
|
extern void string_init_length(string* s, ssize_t length);
|
|
extern void string_init_length(string* s, const char* str, ssize_t length);
|
|
extern char* string_data(string* s);
|
|
extern const char* string_data(const string* s);
|
|
extern void string_add(string* s, const char* str);
|
|
extern void string_add_length(string* s, const char* str, ssize_t length);
|
|
extern void string_add_char(string* s, char c);
|
|
extern void string_copy(string* src, string* dst);
|
|
extern void string_copy_wstring(wstring* src, string* dst);
|
|
extern void string_replace(string* src, string* dst);
|
|
extern void string_replace_wstring(wstring* src, string* dst);
|
|
extern bool string_compare(string* str0, string* str1);
|
|
extern void string_free(string* s);
|
|
extern void wstring_init(wstring* s);
|
|
extern void wstring_init(wstring* s, const wchar_t* str);
|
|
extern void wstring_init_length(wstring* s, ssize_t length);
|
|
extern void wstring_init_length(wstring* s, const wchar_t* str, ssize_t length);
|
|
extern wchar_t* wstring_data(wstring* s);
|
|
extern void wstring_add(wstring* s, const wchar_t* str);
|
|
extern void wstring_add_length(wstring* s, const wchar_t* str, ssize_t length);
|
|
extern void wstring_add_char(wstring* s, wchar_t c);
|
|
extern void wstring_copy(wstring* src, wstring* dst);
|
|
extern void wstring_copy_string(string* src, wstring* dst);
|
|
extern void wstring_replace(wstring* src, wstring* dst);
|
|
extern void wstring_replace_string(string* src, wstring* dst);
|
|
extern bool wstring_compare(wstring* str0, wstring* str1);
|
|
extern void wstring_free(wstring* s);
|