[ox/std] Rename string len() functions to size()
This commit is contained in:
4
deps/ox/src/ox/clargs/clargs.cpp
vendored
4
deps/ox/src/ox/clargs/clargs.cpp
vendored
@ -17,14 +17,14 @@ ClArgs::ClArgs(ox::SpanView<const char*> args) noexcept {
|
||||
for (auto i = 0u; i < args.size(); ++i) {
|
||||
auto arg = StringView{args[i]};
|
||||
if (arg[0] == '-') {
|
||||
while (arg[0] == '-' && arg.len()) {
|
||||
while (arg[0] == '-' && arg.size()) {
|
||||
arg = substr(arg, 1);
|
||||
}
|
||||
m_bools[arg] = true;
|
||||
// parse additional arguments
|
||||
if (i < args.size() && args[i + 1]) {
|
||||
auto const val = StringView{args[i + 1]};
|
||||
if (val.len() && val[0] != '-') {
|
||||
if (val.size() && val[0] != '-') {
|
||||
if (val == "false") {
|
||||
m_bools[arg] = false;
|
||||
}
|
||||
|
6
deps/ox/src/ox/claw/test/tests.cpp
vendored
6
deps/ox/src/ox/claw/test/tests.cpp
vendored
@ -109,7 +109,7 @@ static std::map<ox::StringView, ox::Error(*)()> tests = {
|
||||
"ClawHeaderReader",
|
||||
[] {
|
||||
constexpr auto hdr = ox::StringLiteral("O1;com.drinkingtea.ox.claw.test.Header;2;");
|
||||
auto [ch, err] = ox::readClawHeader({hdr.c_str(), hdr.len() + 1});
|
||||
auto [ch, err] = ox::readClawHeader({hdr.c_str(), hdr.size() + 1});
|
||||
oxAssert(err, "Error parsing header");
|
||||
oxAssert(ch.fmt == ox::ClawFormat::Organic, "Format wrong");
|
||||
oxAssert(ch.typeName == "com.drinkingtea.ox.claw.test.Header", "Type name wrong");
|
||||
@ -121,7 +121,7 @@ static std::map<ox::StringView, ox::Error(*)()> tests = {
|
||||
"ClawHeaderReader2",
|
||||
[] {
|
||||
constexpr auto hdr = ox::StringLiteral("M2;com.drinkingtea.ox.claw.test.Header2;3;");
|
||||
auto [ch, err] = ox::readClawHeader({hdr.c_str(), hdr.len() + 1});
|
||||
auto [ch, err] = ox::readClawHeader({hdr.c_str(), hdr.size() + 1});
|
||||
oxAssert(err, "Error parsing header");
|
||||
oxAssert(ch.fmt == ox::ClawFormat::Metal, "Format wrong");
|
||||
oxAssert(ch.typeName == "com.drinkingtea.ox.claw.test.Header2", "Type name wrong");
|
||||
@ -134,7 +134,7 @@ static std::map<ox::StringView, ox::Error(*)()> tests = {
|
||||
[] {
|
||||
constexpr auto hdr = ox::StringLiteral("M2;com.drinkingtea.ox.claw.test.Header2;3;awefawf");
|
||||
constexpr auto expected = ox::StringLiteral("com.drinkingtea.ox.claw.test.Header2;3");
|
||||
OX_REQUIRE(actual, ox::readClawTypeId({hdr.data(), hdr.len() + 1}));
|
||||
OX_REQUIRE(actual, ox::readClawTypeId({hdr.data(), hdr.size() + 1}));
|
||||
oxExpect(actual, expected);
|
||||
return ox::Error{};
|
||||
}
|
||||
|
4
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
4
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
@ -52,7 +52,7 @@ struct OX_PACKED DirectoryEntry {
|
||||
if (d.valid()) {
|
||||
d->inode = inode;
|
||||
auto const maxStrSz = bufferSize - 1 - sizeof(*this);
|
||||
ox::strncpy(d->name, name.data(), ox::min(maxStrSz, name.len()));
|
||||
ox::strncpy(d->name, name.data(), ox::min(maxStrSz, name.size()));
|
||||
return {};
|
||||
}
|
||||
return ox::Error(1);
|
||||
@ -219,7 +219,7 @@ Error Directory<FileStore, InodeId_t>::write(PathIterator path, uint64_t inode64
|
||||
oxTrace("ox.fs.Directory.write.fail", "Could not read existing version of Directory");
|
||||
return ox::Error(1, "Could not read existing version of Directory");
|
||||
}
|
||||
const auto pathSize = name.len() + 1;
|
||||
const auto pathSize = name.size() + 1;
|
||||
const auto entryDataSize = DirectoryEntry<InodeId_t>::DirectoryEntryData::spaceNeeded(pathSize);
|
||||
const auto newSize = oldStat.size + Buffer::spaceNeeded(entryDataSize);
|
||||
auto cpy = ox_malloca(newSize, Buffer, *old, oldStat.size);
|
||||
|
@ -206,7 +206,7 @@ Error PassThroughFS::writeFileInode(uint64_t, const void*, uint64_t, FileType) n
|
||||
}
|
||||
|
||||
std::string_view PassThroughFS::stripSlash(StringView path) noexcept {
|
||||
for (auto i = 0u; i < path.len() && path[0] == '/'; i++) {
|
||||
for (auto i = 0u; i < path.size() && path[0] == '/'; i++) {
|
||||
path = substr(path, 1);
|
||||
}
|
||||
return {path.data(), path.bytes()};
|
||||
|
@ -74,7 +74,7 @@ Error PathIterator::get(StringView &fileName) {
|
||||
if (size && fileName[size - 1] == '/') {
|
||||
fileName = ox::substr(m_path, start, start + size - 1);
|
||||
}
|
||||
oxAssert(fileName[fileName.len()-1] != '/', "name ends in /");
|
||||
oxAssert(fileName[fileName.size()-1] != '/', "name ends in /");
|
||||
return {};
|
||||
}
|
||||
|
||||
@ -104,11 +104,11 @@ Error PathIterator::next(StringView &fileName) {
|
||||
}
|
||||
fileName = ox::substr(m_path, start, start + size);
|
||||
// truncate trailing /
|
||||
while (fileName.len() && fileName[fileName.len() - 1] == '/') {
|
||||
while (fileName.size() && fileName[fileName.size() - 1] == '/') {
|
||||
fileName = ox::substr(m_path, start, start + size);
|
||||
}
|
||||
m_iterator += size;
|
||||
oxAssert(fileName.len() == 0 || fileName[fileName.len()-1] != '/', "name ends in /");
|
||||
oxAssert(fileName.size() == 0 || fileName[fileName.size()-1] != '/', "name ends in /");
|
||||
}
|
||||
return retval;
|
||||
}
|
||||
|
12
deps/ox/src/ox/fs/test/tests.cpp
vendored
12
deps/ox/src/ox/fs/test/tests.cpp
vendored
@ -59,7 +59,7 @@ const std::map<ox::StringView, std::function<ox::Error(ox::StringView)>> tests =
|
||||
"PathIterator::next1",
|
||||
[](ox::StringView) {
|
||||
auto constexpr path = ox::StringLiteral("/usr/share/charset.gbag");
|
||||
ox::PathIterator it(path.c_str(), path.len());
|
||||
ox::PathIterator it(path.c_str(), path.size());
|
||||
ox::StringView buff;
|
||||
oxAssert(it.next(buff) == 0 && buff == "usr", "PathIterator shows wrong next");
|
||||
oxAssert(it.next(buff) == 0 && buff == "share", "PathIterator shows wrong next");
|
||||
@ -84,7 +84,7 @@ const std::map<ox::StringView, std::function<ox::Error(ox::StringView)>> tests =
|
||||
"PathIterator::next3",
|
||||
[](ox::StringView) {
|
||||
auto const path = ox::String("/");
|
||||
ox::PathIterator it(path.c_str(), path.len());
|
||||
ox::PathIterator it(path.c_str(), path.size());
|
||||
ox::StringView buff;
|
||||
oxAssert(it.next(buff) == 0 && buff == "\0", "PathIterator shows wrong next");
|
||||
return ox::Error(0);
|
||||
@ -106,7 +106,7 @@ const std::map<ox::StringView, std::function<ox::Error(ox::StringView)>> tests =
|
||||
"PathIterator::next5",
|
||||
[](ox::StringView) {
|
||||
auto const path = ox::String("usr/share/");
|
||||
ox::PathIterator it(path.c_str(), path.len());
|
||||
ox::PathIterator it(path.c_str(), path.size());
|
||||
ox::StringView buff;
|
||||
oxAssert(it.next(buff) == 0 && buff == "usr", "PathIterator shows wrong next");
|
||||
oxAssert(it.next(buff) == 0 && buff == "share", "PathIterator shows wrong next");
|
||||
@ -117,10 +117,10 @@ const std::map<ox::StringView, std::function<ox::Error(ox::StringView)>> tests =
|
||||
"PathIterator::dirPath",
|
||||
[] (ox::StringView) {
|
||||
auto constexpr path = ox::StringLiteral("/usr/share/charset.gbag");
|
||||
ox::PathIterator it(path.c_str(), path.len());
|
||||
auto buff = static_cast<char*>(ox_alloca(path.len() + 1));
|
||||
ox::PathIterator it(path.c_str(), path.size());
|
||||
auto buff = static_cast<char*>(ox_alloca(path.size() + 1));
|
||||
OX_ALLOW_UNSAFE_BUFFERS_BEGIN
|
||||
oxAssert(it.dirPath(buff, path.len()) == 0 && ox::strcmp(buff, "/usr/share/") == 0, "PathIterator shows incorrect dir path");
|
||||
oxAssert(it.dirPath(buff, path.size()) == 0 && ox::strcmp(buff, "/usr/share/") == 0, "PathIterator shows incorrect dir path");
|
||||
OX_ALLOW_UNSAFE_BUFFERS_END
|
||||
return ox::Error(0);
|
||||
}
|
||||
|
2
deps/ox/src/ox/mc/test/tests.cpp
vendored
2
deps/ox/src/ox/mc/test/tests.cpp
vendored
@ -157,7 +157,7 @@ std::map<ox::StringView, ox::Error(*)()> tests = {
|
||||
oxAssert(testIn.Int8 == testOut.Int8, "Int8 value mismatch");
|
||||
oxAssert(testIn.Union.Int == testOut.Union.Int, "Union.Int value mismatch");
|
||||
oxAssert(testIn.String == testOut.String, "String value mismatch");
|
||||
oxDebugf("{}", testOut.IString.len());
|
||||
oxDebugf("{}", testOut.IString.size());
|
||||
oxExpect(testIn.IString, testOut.IString);
|
||||
oxAssert(testIn.List[0] == testOut.List[0], "List[0] value mismatch");
|
||||
oxAssert(testIn.List[1] == testOut.List[1], "List[1] value mismatch");
|
||||
|
10
deps/ox/src/ox/mc/write.hpp
vendored
10
deps/ox/src/ox/mc/write.hpp
vendored
@ -191,12 +191,12 @@ template<Writer_c Writer>
|
||||
template<std::size_t SmallStringSize>
|
||||
constexpr Error MetalClawWriter<Writer>::field(const char*, const BasicString<SmallStringSize> *val) noexcept {
|
||||
bool fieldSet = false;
|
||||
if (val->len() && (!m_unionIdx.has_value() || *m_unionIdx == m_field)) {
|
||||
if (val->size() && (!m_unionIdx.has_value() || *m_unionIdx == m_field)) {
|
||||
// write the length
|
||||
const auto strLen = mc::encodeInteger(val->len());
|
||||
const auto strLen = mc::encodeInteger(val->size());
|
||||
OX_RETURN_ERROR(m_writer.write(reinterpret_cast<const char*>(strLen.data.data()), strLen.length));
|
||||
// write the string
|
||||
OX_RETURN_ERROR(m_writer.write(val->c_str(), static_cast<std::size_t>(val->len())));
|
||||
OX_RETURN_ERROR(m_writer.write(val->c_str(), static_cast<std::size_t>(val->size())));
|
||||
fieldSet = true;
|
||||
}
|
||||
OX_RETURN_ERROR(m_fieldPresence.set(static_cast<std::size_t>(m_field), fieldSet));
|
||||
@ -207,7 +207,7 @@ constexpr Error MetalClawWriter<Writer>::field(const char*, const BasicString<Sm
|
||||
template<Writer_c Writer>
|
||||
template<std::size_t L>
|
||||
constexpr Error MetalClawWriter<Writer>::field(const char *name, const IString<L> *val) noexcept {
|
||||
return fieldCString(name, val->data(), val->len());
|
||||
return fieldCString(name, val->data(), val->size());
|
||||
}
|
||||
|
||||
template<Writer_c Writer>
|
||||
@ -339,7 +339,7 @@ constexpr Error MetalClawWriter<Writer>::field(const char*, const HashMap<String
|
||||
OX_RETURN_ERROR(handler.setTypeInfo("Map", 0, {}, len * 2));
|
||||
// this loop body needs to be in a lambda because of the potential alloca call
|
||||
constexpr auto loopBody = [](auto &handler, auto const&key, auto const&val) -> ox::Error {
|
||||
const auto keyLen = key.len();
|
||||
const auto keyLen = key.size();
|
||||
auto wkey = ox_malloca(keyLen + 1, char, 0);
|
||||
memcpy(wkey.get(), key.c_str(), keyLen + 1);
|
||||
OX_RETURN_ERROR(handler.fieldCString("", wkey.get(), keyLen));
|
||||
|
2
deps/ox/src/ox/model/desctypes.hpp
vendored
2
deps/ox/src/ox/model/desctypes.hpp
vendored
@ -43,7 +43,7 @@ static constexpr auto buildTypeId(
|
||||
for (const auto &p : typeParams) {
|
||||
tp += p + ",";
|
||||
}
|
||||
tp.resize(tp.len() - 1);
|
||||
tp.resize(tp.size() - 1);
|
||||
tp += "#";
|
||||
}
|
||||
return ox::sfmt("{}{};{}", name, tp, version);
|
||||
|
4
deps/ox/src/ox/model/typenamecatcher.hpp
vendored
4
deps/ox/src/ox/model/typenamecatcher.hpp
vendored
@ -144,7 +144,7 @@ template<typename T, typename Str = const char*>
|
||||
[[nodiscard]]
|
||||
consteval auto requireModelTypeName() noexcept {
|
||||
constexpr auto name = getModelTypeName<T, Str>();
|
||||
static_assert(ox::StringView{name}.len(), "Type lacks required TypeName");
|
||||
static_assert(ox::StringView{name}.size(), "Type lacks required TypeName");
|
||||
return name;
|
||||
}
|
||||
|
||||
@ -159,7 +159,7 @@ constexpr auto ModelTypeId_v = [] {
|
||||
constexpr auto name = ModelTypeName_v<T, ox::StringView>;
|
||||
constexpr auto version = ModelTypeVersion_v<T>;
|
||||
constexpr auto versionStr = ox::sfmt<ox::IString<19>>("{}", version);
|
||||
return ox::sfmt<ox::IString<name.len() + versionStr.len() + 1>>("{};{}", name, versionStr);
|
||||
return ox::sfmt<ox::IString<name.size() + versionStr.size() + 1>>("{};{}", name, versionStr);
|
||||
}();
|
||||
|
||||
}
|
||||
|
2
deps/ox/src/ox/oc/read.hpp
vendored
2
deps/ox/src/ox/oc/read.hpp
vendored
@ -307,7 +307,7 @@ Result<T> readOC(BufferView buff) noexcept {
|
||||
|
||||
template<typename T>
|
||||
Result<T> readOC(ox::StringView json) noexcept {
|
||||
return readOC<T>(ox::BufferView{json.data(), json.len()});
|
||||
return readOC<T>(ox::BufferView{json.data(), json.size()});
|
||||
}
|
||||
|
||||
}
|
||||
|
2
deps/ox/src/ox/oc/write.cpp
vendored
2
deps/ox/src/ox/oc/write.cpp
vendored
@ -32,7 +32,7 @@ Error OrganicClawWriter::fieldCString(const char *key, const char *const*val) no
|
||||
|
||||
Error OrganicClawWriter::field(const char *key, const UUID *uuid) noexcept {
|
||||
const auto uuidStr = uuid->toString();
|
||||
if (targetValid() && uuidStr.len()) {
|
||||
if (targetValid() && uuidStr.size()) {
|
||||
value(key) = uuidStr.c_str();
|
||||
}
|
||||
++m_fieldIt;
|
||||
|
4
deps/ox/src/ox/oc/write.hpp
vendored
4
deps/ox/src/ox/oc/write.hpp
vendored
@ -138,7 +138,7 @@ class OrganicClawWriter {
|
||||
|
||||
template<std::size_t L>
|
||||
Error field(char const*key, IString<L> const*val) noexcept {
|
||||
if (targetValid() && val->len()) {
|
||||
if (targetValid() && val->size()) {
|
||||
value(key) = val->c_str();
|
||||
}
|
||||
++m_fieldIt;
|
||||
@ -147,7 +147,7 @@ class OrganicClawWriter {
|
||||
|
||||
template<std::size_t L>
|
||||
Error field(char const*key, BasicString<L> const*val) noexcept {
|
||||
if (targetValid() && val->len()) {
|
||||
if (targetValid() && val->size()) {
|
||||
value(key) = val->c_str();
|
||||
}
|
||||
++m_fieldIt;
|
||||
|
3
deps/ox/src/ox/std/assert.cpp
vendored
3
deps/ox/src/ox/std/assert.cpp
vendored
@ -33,6 +33,9 @@ void panic(StringViewCR file, int const line, StringViewCR panicMsg, Error const
|
||||
#endif
|
||||
}
|
||||
|
||||
#if __GNUC__
|
||||
__attribute__((weak))
|
||||
#endif
|
||||
void panic(const char *file, int const line, char const*panicMsg, Error const&err) noexcept {
|
||||
panic(StringView{file}, line, StringView{panicMsg}, err);
|
||||
}
|
||||
|
2
deps/ox/src/ox/std/basestringview.hpp
vendored
2
deps/ox/src/ox/std/basestringview.hpp
vendored
@ -185,7 +185,7 @@ class BaseStringView {
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr auto len() const noexcept {
|
||||
constexpr auto size() const noexcept {
|
||||
return m_len;
|
||||
}
|
||||
|
||||
|
8
deps/ox/src/ox/std/cstringview.hpp
vendored
8
deps/ox/src/ox/std/cstringview.hpp
vendored
@ -21,13 +21,13 @@ class CStringView: public detail::BaseStringView {
|
||||
|
||||
constexpr CStringView(CStringView const&sv) noexcept = default;
|
||||
|
||||
constexpr CStringView(StringLiteral const&str) noexcept: BaseStringView(str.data(), str.len()) {}
|
||||
constexpr CStringView(StringLiteral const&str) noexcept: BaseStringView(str.data(), str.size()) {}
|
||||
|
||||
template<std::size_t SmallStrSz>
|
||||
constexpr CStringView(BasicString<SmallStrSz> const&str) noexcept: BaseStringView(str.data(), str.len()) {}
|
||||
constexpr CStringView(BasicString<SmallStrSz> const&str) noexcept: BaseStringView(str.data(), str.size()) {}
|
||||
|
||||
template<std::size_t SmallStrSz>
|
||||
constexpr CStringView(IString<SmallStrSz> const&str) noexcept: BaseStringView(str.data(), str.len()) {}
|
||||
constexpr CStringView(IString<SmallStrSz> const&str) noexcept: BaseStringView(str.data(), str.size()) {}
|
||||
|
||||
constexpr CStringView(std::nullptr_t) noexcept {}
|
||||
|
||||
@ -37,7 +37,7 @@ class CStringView: public detail::BaseStringView {
|
||||
|
||||
constexpr auto &operator=(CStringView const&other) noexcept {
|
||||
if (&other != this) {
|
||||
set(other.data(), other.len());
|
||||
set(other.data(), other.size());
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
|
10
deps/ox/src/ox/std/istring.hpp
vendored
10
deps/ox/src/ox/std/istring.hpp
vendored
@ -72,7 +72,7 @@ class IString {
|
||||
* Returns the number of characters in this string.
|
||||
*/
|
||||
[[nodiscard]]
|
||||
constexpr std::size_t len() const noexcept;
|
||||
constexpr std::size_t size() const noexcept;
|
||||
|
||||
/**
|
||||
* Returns the number of bytes used for this string.
|
||||
@ -121,7 +121,7 @@ constexpr IString<size> &IString<size>::operator=(Integer_c auto i) noexcept {
|
||||
|
||||
template<std::size_t size>
|
||||
constexpr IString<size> &IString<size>::operator=(ox::StringViewCR str) noexcept {
|
||||
std::size_t strLen = str.len();
|
||||
std::size_t strLen = str.size();
|
||||
if (cap() < strLen) {
|
||||
strLen = cap();
|
||||
}
|
||||
@ -171,7 +171,7 @@ constexpr char &IString<StrCap>::operator[](std::size_t i) noexcept {
|
||||
template<std::size_t StrCap>
|
||||
constexpr Error IString<StrCap>::append(const char *str, std::size_t strLen) noexcept {
|
||||
Error err{};
|
||||
auto const currentLen = len();
|
||||
auto const currentLen = size();
|
||||
if (cap() < currentLen + strLen) {
|
||||
strLen = cap() - currentLen;
|
||||
err = ox::Error(1, "Insufficient space for full string");
|
||||
@ -187,7 +187,7 @@ OX_CLANG_NOWARN_END
|
||||
|
||||
template<std::size_t StrCap>
|
||||
constexpr Error IString<StrCap>::append(ox::StringView str) noexcept {
|
||||
return append(str.data(), str.len());
|
||||
return append(str.data(), str.size());
|
||||
}
|
||||
|
||||
template<std::size_t StrCap>
|
||||
@ -207,7 +207,7 @@ constexpr const char *IString<StrCap>::c_str() const noexcept {
|
||||
|
||||
|
||||
template<std::size_t StrCap>
|
||||
constexpr std::size_t IString<StrCap>::len() const noexcept {
|
||||
constexpr std::size_t IString<StrCap>::size() const noexcept {
|
||||
return m_size;
|
||||
}
|
||||
|
||||
|
10
deps/ox/src/ox/std/reader.cpp
vendored
10
deps/ox/src/ox/std/reader.cpp
vendored
@ -30,13 +30,15 @@ constexpr std::ios_base::seekdir sdMap(ox::ios_base::seekdir in) noexcept {
|
||||
|
||||
ox::Result<char> StreamReader::peek() const noexcept {
|
||||
try {
|
||||
if (m_strm.eof()) {
|
||||
return Error{1, "EOF"};
|
||||
}
|
||||
char c{};
|
||||
m_strm.get(c);
|
||||
auto const ok = c != EOF;
|
||||
if (ok && m_strm.unget()) [[unlikely]] {
|
||||
return ox::Error(1, "Unable to unget character");
|
||||
if (m_strm.unget()) [[unlikely]] {
|
||||
return ox::Error{1, "Unable to unget character"};
|
||||
}
|
||||
return {static_cast<char>(c), ox::Error(!ok, "File peek failed")};
|
||||
return static_cast<char>(c);
|
||||
} catch (std::exception const&) {
|
||||
return ox::Error(1, "peek failed");
|
||||
}
|
||||
|
22
deps/ox/src/ox/std/string.hpp
vendored
22
deps/ox/src/ox/std/string.hpp
vendored
@ -176,7 +176,7 @@ class BasicString {
|
||||
constexpr char &operator[](std::size_t i) noexcept;
|
||||
|
||||
constexpr Error append(const char *str, std::size_t strLen) noexcept {
|
||||
auto currentLen = len();
|
||||
auto currentLen = size();
|
||||
m_buff.resize(m_buff.size() + strLen);
|
||||
ox::listcpy(&m_buff[currentLen], str, strLen);
|
||||
// make sure last element is a null terminator
|
||||
@ -186,7 +186,7 @@ class BasicString {
|
||||
}
|
||||
|
||||
constexpr Error append(ox::StringView sv) noexcept {
|
||||
return append(sv.data(), sv.len());
|
||||
return append(sv.data(), sv.size());
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
@ -237,7 +237,7 @@ class BasicString {
|
||||
* Returns the number of characters in this string.
|
||||
*/
|
||||
[[nodiscard]]
|
||||
constexpr std::size_t len() const noexcept;
|
||||
constexpr std::size_t size() const noexcept;
|
||||
|
||||
/**
|
||||
* Returns the number of bytes used for this string.
|
||||
@ -277,7 +277,7 @@ constexpr BasicString<SmallStringSize_v>::BasicString(const char *str, std::size
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr BasicString<SmallStringSize_v>::BasicString(StringLiteral const&str) noexcept:
|
||||
BasicString(StringView{str.data(), str.len()}) {
|
||||
BasicString(StringView{str.data(), str.size()}) {
|
||||
}
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
@ -384,14 +384,14 @@ constexpr BasicString<SmallStringSize_v> &BasicString<SmallStringSize_v>::operat
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr BasicString<SmallStringSize_v> &BasicString<SmallStringSize_v>::operator+=(BasicString const&src) noexcept {
|
||||
std::ignore = append(src.c_str(), src.len());
|
||||
std::ignore = append(src.c_str(), src.size());
|
||||
return *this;
|
||||
}
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(const char *str) const noexcept {
|
||||
const std::size_t strLen = ox::strlen(str);
|
||||
const auto currentLen = len();
|
||||
const auto currentLen = size();
|
||||
BasicString<SmallStringSize_v> cpy;
|
||||
cpy.m_buff.resize(m_buff.size() + strLen);
|
||||
ox::listcpy(&cpy.m_buff[0], m_buff.data(), currentLen);
|
||||
@ -420,8 +420,8 @@ constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operato
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(StringViewCR src) const noexcept {
|
||||
const std::size_t strLen = src.len();
|
||||
const auto currentLen = len();
|
||||
const std::size_t strLen = src.size();
|
||||
const auto currentLen = size();
|
||||
BasicString<SmallStringSize_v> cpy(currentLen + strLen);
|
||||
cpy.m_buff.resize(m_buff.size() + strLen);
|
||||
ox::listcpy(&cpy.m_buff[0], m_buff.data(), currentLen);
|
||||
@ -432,8 +432,8 @@ constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operato
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(BasicString const&src) const noexcept {
|
||||
const std::size_t strLen = src.len();
|
||||
const auto currentLen = len();
|
||||
const std::size_t strLen = src.size();
|
||||
const auto currentLen = size();
|
||||
BasicString<SmallStringSize_v> cpy(currentLen + strLen);
|
||||
cpy.m_buff.resize(m_buff.size() + strLen);
|
||||
ox::listcpy(&cpy.m_buff[0], m_buff.data(), currentLen);
|
||||
@ -521,7 +521,7 @@ constexpr std::size_t BasicString<SmallStringSize_v>::bytes() const noexcept {
|
||||
}
|
||||
|
||||
template<std::size_t SmallStringSize_v>
|
||||
constexpr std::size_t BasicString<SmallStringSize_v>::len() const noexcept {
|
||||
constexpr std::size_t BasicString<SmallStringSize_v>::size() const noexcept {
|
||||
return m_buff.size() - 1;
|
||||
}
|
||||
|
||||
|
2
deps/ox/src/ox/std/stringliteral.hpp
vendored
2
deps/ox/src/ox/std/stringliteral.hpp
vendored
@ -32,7 +32,7 @@ class StringLiteral: public detail::BaseStringView {
|
||||
OX_ALLOW_UNSAFE_BUFFERS_END
|
||||
|
||||
constexpr StringLiteral &operator=(StringLiteral const &other) noexcept {
|
||||
set(other.data(), other.len());
|
||||
set(other.data(), other.size());
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
20
deps/ox/src/ox/std/stringview.hpp
vendored
20
deps/ox/src/ox/std/stringview.hpp
vendored
@ -40,10 +40,10 @@ class StringView: public detail::BaseStringView {
|
||||
constexpr StringView(BaseStringView const&str) noexcept: BaseStringView(str.data(), str.bytes()) {}
|
||||
|
||||
template<std::size_t SmallStrSz>
|
||||
constexpr StringView(const BasicString<SmallStrSz> &str) noexcept: BaseStringView(str.data(), str.len()) {}
|
||||
constexpr StringView(const BasicString<SmallStrSz> &str) noexcept: BaseStringView(str.data(), str.size()) {}
|
||||
|
||||
template<std::size_t SmallStrSz>
|
||||
constexpr StringView(const IString<SmallStrSz> &str) noexcept: BaseStringView(str.data(), str.len()) {}
|
||||
constexpr StringView(const IString<SmallStrSz> &str) noexcept: BaseStringView(str.data(), str.size()) {}
|
||||
|
||||
constexpr StringView(std::nullptr_t) noexcept {}
|
||||
|
||||
@ -53,7 +53,7 @@ class StringView: public detail::BaseStringView {
|
||||
|
||||
constexpr auto &operator=(StringView const&other) noexcept {
|
||||
if (&other != this) {
|
||||
set(other.data(), other.len());
|
||||
set(other.data(), other.size());
|
||||
}
|
||||
return *this;
|
||||
}
|
||||
@ -63,14 +63,14 @@ class StringView: public detail::BaseStringView {
|
||||
using StringViewCR = StringView const&;
|
||||
|
||||
constexpr auto operator==(StringViewCR s1, StringViewCR s2) noexcept {
|
||||
if (s2.len() != s1.len()) {
|
||||
if (s2.size() != s1.size()) {
|
||||
return false;
|
||||
}
|
||||
return ox::strncmp(s1.data(), s2.data(), s1.len()) == 0;
|
||||
return ox::strncmp(s1.data(), s2.data(), s1.size()) == 0;
|
||||
}
|
||||
|
||||
constexpr auto operator<=>(StringViewCR s1, StringViewCR s2) noexcept {
|
||||
const auto maxLen = ox::min(s1.len(), s2.len());
|
||||
const auto maxLen = ox::min(s1.size(), s2.size());
|
||||
const auto a = &s1.front();
|
||||
const auto b = &s2.front();
|
||||
for (std::size_t i = 0; i < maxLen && (a[i] || b[i]); ++i) {
|
||||
@ -80,9 +80,9 @@ constexpr auto operator<=>(StringViewCR s1, StringViewCR s2) noexcept {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
if (s1.len() > s2.len()) {
|
||||
if (s1.size() > s2.size()) {
|
||||
return 1;
|
||||
} else if (s1.len() < s2.len()) {
|
||||
} else if (s1.size() < s2.size()) {
|
||||
return -1;
|
||||
} else {
|
||||
return 0;
|
||||
@ -104,10 +104,10 @@ constexpr ox::Result<int> strToInt(StringViewCR str) noexcept {
|
||||
OX_ALLOW_UNSAFE_BUFFERS_BEGIN
|
||||
int total = 0;
|
||||
int multiplier = 1;
|
||||
if (str.len() == 0) [[unlikely]] {
|
||||
if (str.size() == 0) [[unlikely]] {
|
||||
return Error{1, "Empty string passed to strToInt"};
|
||||
}
|
||||
for (auto i = static_cast<int64_t>(str.len()) - 1; i != -1; --i) {
|
||||
for (auto i = static_cast<int64_t>(str.size()) - 1; i != -1; --i) {
|
||||
auto s = static_cast<std::size_t>(i);
|
||||
if (str[s] >= '0' && str[s] <= '9') {
|
||||
total += (str[s] - '0') * multiplier;
|
||||
|
28
deps/ox/src/ox/std/strops.hpp
vendored
28
deps/ox/src/ox/std/strops.hpp
vendored
@ -22,15 +22,15 @@ namespace ox {
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr ox::StringView substr(ox::StringView const&str, std::size_t pos) noexcept {
|
||||
if (str.len() >= pos) {
|
||||
return {&str[pos], str.len() - pos};
|
||||
if (str.size() >= pos) {
|
||||
return {&str[pos], str.size() - pos};
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr ox::StringView substr(ox::StringView const&str, std::size_t start, std::size_t end) noexcept {
|
||||
if (str.len() >= start && end >= start) {
|
||||
if (str.size() >= start && end >= start) {
|
||||
return {&str[start], end - start};
|
||||
}
|
||||
return {};
|
||||
@ -38,20 +38,20 @@ constexpr ox::StringView substr(ox::StringView const&str, std::size_t start, std
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr bool beginsWith(StringViewCR base, StringViewCR beginning) noexcept {
|
||||
const auto beginningLen = ox::min(beginning.len(), base.len());
|
||||
return base.len() >= beginning.len() && ox::strncmp(base.data(), beginning, beginningLen) == 0;
|
||||
const auto beginningLen = ox::min(beginning.size(), base.size());
|
||||
return base.size() >= beginning.size() && ox::strncmp(base.data(), beginning, beginningLen) == 0;
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr bool endsWith(StringViewCR base, StringViewCR ending) noexcept {
|
||||
const auto endingLen = ending.len();
|
||||
return base.len() >= endingLen && ox::strcmp(base.data() + (base.len() - endingLen), ending) == 0;
|
||||
const auto endingLen = ending.size();
|
||||
return base.size() >= endingLen && ox::strcmp(base.data() + (base.size() - endingLen), ending) == 0;
|
||||
}
|
||||
|
||||
[[nodiscard]]
|
||||
constexpr std::size_t find(StringViewCR str, char search) noexcept {
|
||||
std::size_t i = 0;
|
||||
for (; i < str.len(); ++i) {
|
||||
for (; i < str.size(); ++i) {
|
||||
if (str[i] == search) {
|
||||
break;
|
||||
}
|
||||
@ -62,7 +62,7 @@ constexpr std::size_t find(StringViewCR str, char search) noexcept {
|
||||
[[nodiscard]]
|
||||
constexpr std::size_t find(StringViewCR str, StringViewCR search) noexcept {
|
||||
std::size_t i = 0;
|
||||
for (; i < str.len(); ++i) {
|
||||
for (; i < str.size(); ++i) {
|
||||
if (beginsWith(substr(str, i), search)) {
|
||||
break;
|
||||
}
|
||||
@ -77,9 +77,9 @@ constexpr ox::Vector<ox::StringView, smallSz> split(StringViewCR str, char del)
|
||||
constexpr auto nextSeg = [](StringViewCR current, char del) {
|
||||
return substr(current, find(current, del) + 1);
|
||||
};
|
||||
for (auto current = str; current.len(); current = nextSeg(current, del)) {
|
||||
for (auto current = str; current.size(); current = nextSeg(current, del)) {
|
||||
const auto next = find(current, del);
|
||||
if (const auto s = substr(current, 0, next); s.len()) {
|
||||
if (const auto s = substr(current, 0, next); s.size()) {
|
||||
out.emplace_back(s);
|
||||
}
|
||||
current = substr(current, next);
|
||||
@ -92,11 +92,11 @@ template<std::size_t smallSz = 0>
|
||||
constexpr ox::Vector<ox::StringView, smallSz> split(StringViewCR str, StringViewCR del) noexcept {
|
||||
ox::Vector<ox::StringView, smallSz> out;
|
||||
constexpr auto nextSeg = [](StringViewCR current, StringViewCR del) {
|
||||
return substr(current, find(current, del) + del.len());
|
||||
return substr(current, find(current, del) + del.size());
|
||||
};
|
||||
for (auto current = str; current.len(); current = nextSeg(current, del)) {
|
||||
for (auto current = str; current.size(); current = nextSeg(current, del)) {
|
||||
const auto next = find(current, del);
|
||||
if (const auto s = substr(current, 0, next); s.len()) {
|
||||
if (const auto s = substr(current, 0, next); s.size()) {
|
||||
out.emplace_back(s);
|
||||
}
|
||||
current = substr(current, next);
|
||||
|
2
deps/ox/src/ox/std/test/tests.cpp
vendored
2
deps/ox/src/ox/std/test/tests.cpp
vendored
@ -183,7 +183,7 @@ OX_CLANG_NOWARN_END
|
||||
s = "asdf";
|
||||
oxAssert(s == "asdf", "String assign broken");
|
||||
oxAssert(s != "aoeu", "String assign broken");
|
||||
oxAssert(s.len() == 4, "String assign broken");
|
||||
oxAssert(s.size() == 4, "String assign broken");
|
||||
return ox::Error(0);
|
||||
}
|
||||
},
|
||||
|
10
deps/ox/src/ox/std/trace.hpp
vendored
10
deps/ox/src/ox/std/trace.hpp
vendored
@ -166,7 +166,7 @@ class OutStream {
|
||||
constexpr OutStream &operator<<(Integer_c auto v) noexcept;
|
||||
|
||||
constexpr OutStream &operator<<(char v) noexcept {
|
||||
if (m_msg.msg.len()) {
|
||||
if (m_msg.msg.size()) {
|
||||
m_msg.msg += m_delimiter;
|
||||
}
|
||||
m_msg.msg += v;
|
||||
@ -174,7 +174,7 @@ class OutStream {
|
||||
}
|
||||
|
||||
constexpr OutStream &operator<<(StringViewCR v) noexcept {
|
||||
if (m_msg.msg.len()) {
|
||||
if (m_msg.msg.size()) {
|
||||
m_msg.msg += m_delimiter;
|
||||
}
|
||||
m_msg.msg += v;
|
||||
@ -209,7 +209,7 @@ class OutStream {
|
||||
|
||||
private:
|
||||
constexpr OutStream &appendSignedInt(int64_t v) noexcept {
|
||||
if (m_msg.msg.len()) {
|
||||
if (m_msg.msg.size()) {
|
||||
m_msg.msg += m_delimiter;
|
||||
}
|
||||
m_msg.msg += static_cast<int64_t>(v);
|
||||
@ -217,7 +217,7 @@ class OutStream {
|
||||
}
|
||||
|
||||
constexpr OutStream &appendUnsignedInt(uint64_t v) noexcept {
|
||||
if (m_msg.msg.len()) {
|
||||
if (m_msg.msg.size()) {
|
||||
m_msg.msg += m_delimiter;
|
||||
}
|
||||
m_msg.msg += static_cast<int64_t>(v);
|
||||
@ -227,7 +227,7 @@ class OutStream {
|
||||
};
|
||||
|
||||
constexpr OutStream &OutStream::operator<<(Integer_c auto v) noexcept {
|
||||
if (m_msg.msg.len()) {
|
||||
if (m_msg.msg.size()) {
|
||||
m_msg.msg += m_delimiter;
|
||||
}
|
||||
m_msg.msg += v;
|
||||
|
10
deps/ox/src/ox/std/uuid.hpp
vendored
10
deps/ox/src/ox/std/uuid.hpp
vendored
@ -58,7 +58,7 @@ constexpr ox::Result<uint8_t> fromHex(ox::StringViewCR v) noexcept {
|
||||
if (!detail::isHexChar(v[0]) || !detail::isHexChar(v[1])) {
|
||||
return ox::Error(1, "Invalid UUID");
|
||||
}
|
||||
if (v.len() != 2) {
|
||||
if (v.size() != 2) {
|
||||
return ox::Error(2);
|
||||
}
|
||||
uint8_t out = 0;
|
||||
@ -133,18 +133,18 @@ class UUID {
|
||||
}
|
||||
|
||||
static constexpr ox::Result<ox::UUID> fromString(ox::StringViewCR s) noexcept {
|
||||
if (s.len() < 36) {
|
||||
if (s.size() < 36) {
|
||||
return ox::Error(1, "Insufficient data to contain a complete UUID");
|
||||
}
|
||||
UUID out;
|
||||
auto valueI = 0u;
|
||||
for (size_t i = 0; i < s.len();) {
|
||||
for (size_t i = 0; i < s.size();) {
|
||||
if (s[i] == '-') {
|
||||
++i;
|
||||
continue;
|
||||
}
|
||||
const auto seg = substr(s, i, i + 2);
|
||||
if (seg.len() != 2) {
|
||||
if (seg.size() != 2) {
|
||||
return ox::Error(1, "Invalid UUID");
|
||||
}
|
||||
OX_REQUIRE(val, detail::fromHex(seg));
|
||||
@ -174,7 +174,7 @@ class UUID {
|
||||
for (auto i = 0u; i < cnt; ++i) {
|
||||
const auto v = value[valueI];
|
||||
const auto h = detail::toHex(v);
|
||||
std::ignore = writer.write(h.c_str(), h.len());
|
||||
std::ignore = writer.write(h.c_str(), h.size());
|
||||
++valueI;
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user