Toward core module compiling.
This commit is contained in:
parent
c25a56ee19
commit
3ed195d7dd
305 changed files with 1774 additions and 1065 deletions
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue