LString LString::fromAscii(const std::string &s) { LString ret; ret.resize(s.size()); LString::Iterator out = ret.begin(); for (std::string::const_iterator i = s.begin(); i != s.end(); ++i) { *out = *i; } return ret; }
LString LString::toLower() const { LString ret; ret.resize(size()); LString::Iterator out = ret.begin(); for (LString::ConstIterator i = begin(); i != end(); i++) { char32_t ch = *i; ch = toLower(ch); *out = ch; ++out; } return ret; }
LString LString::fromUtf8(const std::string &s) { if (s.size() == 0) return LString(); const uint8_t *begin = reinterpret_cast<const uint8_t*>(s.c_str()); const uint8_t *end = begin + s.size(); LString ret; ret.reserve(s.size()); LChar *destBegin = ret.begin(); LChar *destEnd = ret.end(); bool conversionSucceeded = utf8ToUtf32(&begin, end, &destBegin, destEnd); assert(conversionSucceeded && "Failed conversion utf8 -> utf32"); ret.resize(destBegin - ret.begin()); return ret; }