Toward core module compiling.

This commit is contained in:
jmsgrogan 2023-12-27 12:20:02 +00:00
parent c25a56ee19
commit 3ed195d7dd
305 changed files with 1774 additions and 1065 deletions

View file

@ -8,6 +8,12 @@ String::String()
m_data.push_back('\0');
}
String::String(size_t size, char c)
{
m_data.resize(size, c);
m_data.push_back('\0');
}
String::String(const Vector<Byte>& data)
{
append(data);
@ -87,6 +93,20 @@ void String::append(const char* data)
m_data.push_back('\0');
}
void String::eraseIf(erasePredicate func)
{
size_t count{0};
for(size_t idx=0; idx<size(); idx++)
{
if (!func(m_data[idx]))
{
m_data[count] = m_data[idx];
count++;
}
}
m_data[count] = '\0';
}
const Vector<char>& String::data() const
{
return m_data;
@ -138,7 +158,7 @@ Pair<String, String> String::rsplit(char c) const
return {*this, {}};
}
bool String::slice(std::size_t idx, String& out) const
bool String::slice(size_t idx, String& out) const
{
if (idx >= m_data.size())
{
@ -153,7 +173,7 @@ bool String::slice(std::size_t idx, String& out) const
return true;
}
bool String::slice(std::size_t start, std::size_t end, String& out) const
bool String::slice(size_t start, size_t end, String& out) const
{
if (end >= m_data.size())
{
@ -174,7 +194,7 @@ Index String::rindex(char c) const
{
return {};
}
for(std::size_t idx=m_data.size()-2; idx >= 0; idx--)
for(size_t idx=m_data.size()-2; idx >= 0; idx--)
{
if (m_data[idx] == c)
{
@ -189,7 +209,7 @@ const char* String::raw() const
return m_data.data();
}
std::size_t String::size() const
size_t String::size() const
{
return m_data.size() - 1;
}
@ -223,7 +243,7 @@ String String::to_string(size_t input)
return conv;
}
char String::operator[](std::size_t idx) const
char String::operator[](size_t idx) const
{
return m_data[idx];
}
@ -256,6 +276,16 @@ String& String::operator<<(size_t idx)
return *this;
}
void String::push_back(char c)
{
if (m_data.empty())
{
m_data.push_back('\0');
}
m_data.push_back('\0');
m_data[m_data.size()-2] = c;
}
String& String::operator+=(const String& str)
{
if (m_data.empty())
@ -279,12 +309,7 @@ String String::operator+(const String& str) const
String& String::operator+=(char c)
{
if (m_data.empty())
{
m_data.push_back('\0');
}
m_data.push_back('\0');
m_data[m_data.size()-2] = c;
push_back(c);
return *this;
}