diff options
Diffstat (limited to 'include/godot_cpp/core/String.cpp')
-rw-r--r-- | include/godot_cpp/core/String.cpp | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/include/godot_cpp/core/String.cpp b/include/godot_cpp/core/String.cpp new file mode 100644 index 0000000..22f80f3 --- /dev/null +++ b/include/godot_cpp/core/String.cpp @@ -0,0 +1,125 @@ +#include "String.h" + +namespace godot { + + +#include <godot/godot_string.h> + +#include <string.h> + + +godot::String::String() +{ + godot_string_new(&_godot_string); +} + +String::String(const char *contents) +{ + godot_string_new_data(&_godot_string, contents, strlen(contents)); +} + +String::String(const wchar_t *contents) +{ + // @Todo + // godot_string_new_data(&_godot_string, contents, strlen(contents)); + godot_string_new(&_godot_string); +} + +String::String(const wchar_t c) +{ + // @Todo + godot_string_new(&_godot_string); +} + +String::String(const String& other) +{ + godot_string_new(&_godot_string); + godot_string_copy_string(&_godot_string, &other._godot_string); +} + +String::~String() +{ + godot_string_destroy(&_godot_string); +} + + +String String::substr(int p_from,int p_chars) const +{ + return String(); // @Todo +} + + +wchar_t &String::operator [](const int idx) +{ + return *godot_string_operator_index(&_godot_string, idx); +} + +wchar_t String::operator [](const int idx) const +{ + return *godot_string_operator_index((godot_string *) &_godot_string, idx); +} + +int String::length() const +{ + int len = 0; + godot_string_get_data(&_godot_string, nullptr, &len); + return len; +} + +bool String::operator ==(const String &s) +{ + return godot_string_operator_equal(&_godot_string, &s._godot_string); +} + +bool String::operator !=(const String &s) +{ + return !(*this == s); +} + +String String::operator +(const String &s) +{ + String new_string; + godot_string_operator_plus(&new_string._godot_string, &_godot_string, &s._godot_string); + + return new_string; +} + +void String::operator +=(const String &s) +{ + godot_string_operator_plus(&_godot_string, &_godot_string, &s._godot_string); +} + +void String::operator +=(const wchar_t c) +{ + // @Todo +} + +bool String::operator <(const String &s) +{ + return godot_string_operator_less(&_godot_string, &s._godot_string); +} + +bool String::operator <=(const String &s) +{ + return godot_string_operator_less(&_godot_string, &s._godot_string) || (*this == s); +} + +bool String::operator >(const String &s) +{ + return !(*this <= s); +} + +bool String::operator >=(const String &s) +{ + return !(*this < s); +} + +const wchar_t *String::c_string() +{ + return godot_string_c_str(&_godot_string); +} + + + + +} |