[ox] Make ox::String::String(const char*) explicit
This commit is contained in:
		
							
								
								
									
										18
									
								
								deps/ox/src/ox/clargs/clargs.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										18
									
								
								deps/ox/src/ox/clargs/clargs.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -13,7 +13,7 @@ namespace ox { | ||||
|  | ||||
| ClArgs::ClArgs(int argc, const char **args) noexcept { | ||||
| 	for (auto i = 0u; i < static_cast<unsigned>(argc); ++i) { | ||||
| 		String arg = args[i]; | ||||
| 		auto arg = String(args[i]); | ||||
| 		if (arg[0] == '-') { | ||||
| 			while (arg[0] == '-' && arg.len()) { | ||||
| 				arg = arg.substr(1); | ||||
| @@ -21,7 +21,7 @@ ClArgs::ClArgs(int argc, const char **args) noexcept { | ||||
| 			m_bools[arg] = true; | ||||
| 			// parse additional arguments | ||||
| 			if (i < static_cast<unsigned>(argc) && args[i + 1]) { | ||||
| 				String val = args[i + 1]; | ||||
| 				auto val = String(args[i + 1]); | ||||
| 				if (val.len() && val[i] != '-') { | ||||
| 					if (val == "false") { | ||||
| 						m_bools[arg] = false; | ||||
| @@ -37,32 +37,32 @@ ClArgs::ClArgs(int argc, const char **args) noexcept { | ||||
| 	} | ||||
| } | ||||
|  | ||||
| bool ClArgs::getBool(ox::CRString arg, bool defaultValue) const noexcept { | ||||
| bool ClArgs::getBool(ox::CRStringView arg, bool defaultValue) const noexcept { | ||||
| 	auto [value, err] = m_ints.at(arg); | ||||
| 	return !err ? *value : defaultValue; | ||||
| } | ||||
|  | ||||
| String ClArgs::getString(ox::CRString arg, const char *defaultValue) const noexcept { | ||||
| String ClArgs::getString(ox::CRStringView arg, const char *defaultValue) const noexcept { | ||||
| 	auto [value, err] = m_strings.at(arg); | ||||
| 	return !err ? *value : defaultValue; | ||||
| 	return !err ? *value : ox::String(defaultValue); | ||||
| } | ||||
|  | ||||
| int ClArgs::getInt(ox::CRString arg, int defaultValue) const noexcept { | ||||
| int ClArgs::getInt(ox::CRStringView arg, int defaultValue) const noexcept { | ||||
| 	auto [value, err] = m_ints.at(arg); | ||||
| 	return !err ? *value : defaultValue; | ||||
| } | ||||
|  | ||||
| Result<bool> ClArgs::getBool(ox::CRString arg) const noexcept { | ||||
| Result<bool> ClArgs::getBool(ox::CRStringView arg) const noexcept { | ||||
| 	oxRequire(out, m_bools.at(arg)); | ||||
| 	return *out; | ||||
| } | ||||
|  | ||||
| Result<String> ClArgs::getString(ox::CRString argName) const noexcept { | ||||
| Result<String> ClArgs::getString(ox::CRStringView argName) const noexcept { | ||||
| 	oxRequire(out, m_strings.at(argName)); | ||||
| 	return *out; | ||||
| } | ||||
|  | ||||
| Result<int> ClArgs::getInt(ox::CRString arg) const noexcept { | ||||
| Result<int> ClArgs::getInt(ox::CRStringView arg) const noexcept { | ||||
| 	oxRequire(out, m_ints.at(arg)); | ||||
| 	return *out; | ||||
| } | ||||
|   | ||||
							
								
								
									
										12
									
								
								deps/ox/src/ox/clargs/clargs.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								deps/ox/src/ox/clargs/clargs.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -23,21 +23,21 @@ class ClArgs { | ||||
| 		ClArgs(int argc, const char **args) noexcept; | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		bool getBool(ox::CRString arg, bool defaultValue) const noexcept; | ||||
| 		bool getBool(ox::CRStringView arg, bool defaultValue) const noexcept; | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		String getString(ox::CRString argName, const char *defaultValue) const noexcept; | ||||
| 		String getString(ox::CRStringView argName, const char *defaultValue) const noexcept; | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		int getInt(ox::CRString arg, int defaultValue) const noexcept; | ||||
| 		int getInt(ox::CRStringView arg, int defaultValue) const noexcept; | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		Result<bool> getBool(ox::CRString arg) const noexcept; | ||||
| 		Result<bool> getBool(ox::CRStringView arg) const noexcept; | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		Result<String> getString(ox::CRString argName) const noexcept; | ||||
| 		Result<String> getString(ox::CRStringView argName) const noexcept; | ||||
|  | ||||
| 		Result<int> getInt(ox::CRString arg) const noexcept; | ||||
| 		Result<int> getInt(ox::CRStringView arg) const noexcept; | ||||
|  | ||||
| }; | ||||
|  | ||||
|   | ||||
							
								
								
									
										4
									
								
								deps/ox/src/ox/claw/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								deps/ox/src/ox/claw/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -112,7 +112,7 @@ static std::map<std::string_view, ox::Error(*)()> tests = { | ||||
| 		{ | ||||
| 			"ClawHeaderReader", | ||||
| 			[] { | ||||
| 				ox::String hdr = "O1;com.drinkingtea.ox.claw.test.Header;2;"; | ||||
| 				ox::String hdr("O1;com.drinkingtea.ox.claw.test.Header;2;"); | ||||
| 				auto [ch, err] = ox::readClawHeader(hdr.c_str(), hdr.len() + 1); | ||||
| 				oxAssert(err, "Error parsing header"); | ||||
| 				oxAssert(ch.fmt == ox::ClawFormat::Organic, "Format wrong"); | ||||
| @@ -124,7 +124,7 @@ static std::map<std::string_view, ox::Error(*)()> tests = { | ||||
| 		{ | ||||
| 			"ClawHeaderReader2", | ||||
| 			[] { | ||||
| 				ox::String hdr = "M2;com.drinkingtea.ox.claw.test.Header2;3;"; | ||||
| 				ox::String hdr("M2;com.drinkingtea.ox.claw.test.Header2;3;"); | ||||
| 				auto [ch, err] = ox::readClawHeader(hdr.c_str(), hdr.len() + 1); | ||||
| 				oxAssert(err, "Error parsing header"); | ||||
| 				oxAssert(ch.fmt == ox::ClawFormat::Metal, "Format wrong"); | ||||
|   | ||||
| @@ -24,7 +24,7 @@ PassThroughFS::PassThroughFS(CRStringView dirPath) { | ||||
| PassThroughFS::~PassThroughFS() noexcept = default; | ||||
|  | ||||
| String PassThroughFS::basePath() const noexcept { | ||||
| 	return m_path.string().c_str(); | ||||
| 	return ox::String(m_path.string().c_str()); | ||||
| } | ||||
|  | ||||
| Error PassThroughFS::mkdir(CRStringView path, bool recursive) noexcept { | ||||
|   | ||||
							
								
								
									
										14
									
								
								deps/ox/src/ox/fs/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								deps/ox/src/ox/fs/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -58,7 +58,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::next1", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "/usr/share/charset.gbag"; | ||||
| 				auto const path = ox::String("/usr/share/charset.gbag"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.next(buff, path.len()) == 0 && ox_strcmp(buff, "usr") == 0, "PathIterator shows wrong next"); | ||||
| @@ -70,7 +70,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::next2", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "/usr/share/"; | ||||
| 				auto const path = ox::String("/usr/share/"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.next(buff, path.len()) == 0 && ox_strcmp(buff, "usr") == 0, "PathIterator shows wrong next"); | ||||
| @@ -81,7 +81,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::next3", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "/"; | ||||
| 				auto const path = ox::String("/"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.next(buff, path.len()) == 0 && ox_strcmp(buff, "\0") == 0, "PathIterator shows wrong next"); | ||||
| @@ -91,7 +91,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::next4", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "usr/share/charset.gbag"; | ||||
| 				auto const path = ox::String("usr/share/charset.gbag"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.next(buff, path.len()) == 0 && ox_strcmp(buff, "usr") == 0, "PathIterator shows wrong next"); | ||||
| @@ -103,7 +103,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::next5", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "usr/share/"; | ||||
| 				auto const path = ox::String("usr/share/"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.next(buff, path.len()) == 0 && ox_strcmp(buff, "usr") == 0, "PathIterator shows wrong next"); | ||||
| @@ -114,7 +114,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::dirPath", | ||||
| 			[] (std::string_view) { | ||||
| 				ox::String path = "/usr/share/charset.gbag"; | ||||
| 				auto const path = ox::String("/usr/share/charset.gbag"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.dirPath(buff, path.len()) == 0 && ox_strcmp(buff, "/usr/share/") == 0, "PathIterator shows incorrect dir path"); | ||||
| @@ -124,7 +124,7 @@ const std::map<std::string_view, std::function<ox::Error(std::string_view)>> tes | ||||
| 		{ | ||||
| 			"PathIterator::fileName", | ||||
| 			[](std::string_view) { | ||||
| 				ox::String path = "/usr/share/charset.gbag"; | ||||
| 				auto const path = ox::String("/usr/share/charset.gbag"); | ||||
| 				ox::PathIterator it(path.c_str(), path.len()); | ||||
| 				auto buff = static_cast<char*>(ox_alloca(path.len() + 1)); | ||||
| 				oxAssert(it.fileName(buff, path.len()) == 0 && ox_strcmp(buff, "charset.gbag") == 0, "PathIterator shows incorrect file name"); | ||||
|   | ||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/fs/tool.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/fs/tool.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -67,7 +67,7 @@ static ox::Error run(int argc, const char **argv) noexcept { | ||||
| 		return OxError(1); | ||||
| 	} | ||||
| 	const auto fsPath = argv[1]; | ||||
| 	ox::String subCmd = argv[2]; | ||||
| 	ox::String subCmd(argv[2]); | ||||
| 	oxRequire(fs, loadFs(fsPath)); | ||||
| 	if (subCmd == "ls") { | ||||
| 		return runLs(fs.get(), argc - 2, argv + 2); | ||||
|   | ||||
							
								
								
									
										16
									
								
								deps/ox/src/ox/mc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								deps/ox/src/ox/mc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -45,7 +45,7 @@ struct TestStruct { | ||||
| 	int32_t Int8 = 0; | ||||
| 	int unionIdx = 1; | ||||
| 	TestUnion Union; | ||||
| 	ox::String String = ""; | ||||
| 	ox::String String; | ||||
| 	ox::BString<32> BString = ""; | ||||
| 	uint32_t List[4] = {0, 0, 0, 0}; | ||||
| 	ox::Vector<uint32_t> Vector = {1, 2, 3, 4, 5}; | ||||
| @@ -108,7 +108,7 @@ constexpr ox::Error model(T *io, ox::CommonPtrWith<TestStruct> auto *obj) noexce | ||||
| std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 	{ | ||||
| 		{ | ||||
| 			"MetalClawWriter", | ||||
| 			ox::String("MetalClawWriter"), | ||||
| 			[] { | ||||
| 				// This test doesn't confirm much, but it does show that the writer | ||||
| 				// doesn't segfault | ||||
| @@ -121,7 +121,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		}, | ||||
|  | ||||
| 		{ | ||||
| 			"MetalClawReader", | ||||
| 			ox::String("MetalClawReader"), | ||||
| 			[] { | ||||
| 				// setup for tests | ||||
| 				TestStruct testIn, testOut; | ||||
| @@ -180,7 +180,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		}, | ||||
|  | ||||
| 		{ | ||||
| 			"encodeInteger", | ||||
| 			ox::String("encodeInteger"), | ||||
| 			[] { | ||||
| 				using ox::MaxValue; | ||||
| 				using ox::mc::McInt; | ||||
| @@ -251,7 +251,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		}, | ||||
|  | ||||
| 		{ | ||||
| 			"decodeInteger", | ||||
| 			ox::String("decodeInteger"), | ||||
| 			[] { | ||||
| 				using ox::MaxValue; | ||||
| 				using ox::mc::McInt; | ||||
| @@ -293,7 +293,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
|  | ||||
|  | ||||
| 		{ | ||||
| 			"MetalClawModelValue", | ||||
| 			ox::String("MetalClawModelValue"), | ||||
| 			[] { | ||||
| 				static constexpr size_t dataBuffLen = ox::units::MB; | ||||
| 				ox::Buffer dataBuff(dataBuffLen); | ||||
| @@ -345,7 +345,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		}, | ||||
|  | ||||
| 		{ | ||||
| 			"MetalClawDef", | ||||
| 			ox::String("MetalClawDef"), | ||||
| 			[] { | ||||
| 				 //constexpr size_t descBuffLen = 1024; | ||||
| 				 //uint8_t descBuff[descBuffLen]; | ||||
| @@ -461,7 +461,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
|  | ||||
| int main(int argc, const char **args) { | ||||
| 	if (argc > 0) { | ||||
| 		auto testName = args[1]; | ||||
| 		auto testName = ox::String(args[1]); | ||||
| 		if (tests.find(testName) != tests.end()) { | ||||
| 			oxAssert(tests[testName](), "Test failed..."); | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										8
									
								
								deps/ox/src/ox/model/modelvalue.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								deps/ox/src/ox/model/modelvalue.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -450,7 +450,7 @@ class ModelObject { | ||||
| 			f = val; | ||||
| 		} | ||||
|  | ||||
| 		constexpr Result<const ModelValue*> get(const String &k) const noexcept { | ||||
| 		constexpr Result<const ModelValue*> get(StringView const&k) const noexcept { | ||||
| 			if (m_fields.contains(k)) { | ||||
| 				return *m_fields.at(k).value; | ||||
| 			} | ||||
| @@ -464,7 +464,7 @@ class ModelObject { | ||||
| 			return {}; | ||||
| 		} | ||||
|  | ||||
| 		constexpr auto &operator[](const String &k) noexcept { | ||||
| 		constexpr auto &operator[](StringView const&k) noexcept { | ||||
| 			auto [v, err] = m_fields.at(k); | ||||
| 			if (err) [[unlikely]] { | ||||
| 				oxPanic(err, ox::sfmt("field {} does not exist in type {}", k, buildTypeId(*m_type)).c_str()); | ||||
| @@ -553,7 +553,7 @@ class ModelUnion { | ||||
| 			return UniquePtr<ModelUnion>(new ModelUnion(other)); | ||||
| 		} | ||||
|  | ||||
| 		constexpr auto &operator[](const String &k) noexcept { | ||||
| 		constexpr auto &operator[](StringView const&k) noexcept { | ||||
| 			const auto [v, err] = m_fields.at(k); | ||||
| 			if (err) [[unlikely]] { | ||||
| 				oxPanic(err, ox::sfmt("field {} does not exist in type {}", k, buildTypeId(*m_type)).c_str()); | ||||
| @@ -588,7 +588,7 @@ class ModelUnion { | ||||
| 		} | ||||
|  | ||||
| 		[[nodiscard]] | ||||
| 		constexpr Result<const ModelValue*> get(const String &k) const noexcept { | ||||
| 		constexpr Result<const ModelValue*> get(StringView const&k) const noexcept { | ||||
| 			oxRequire(t, m_fields.at(k)); | ||||
| 			return &(*t)->value; | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										8
									
								
								deps/ox/src/ox/model/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								deps/ox/src/ox/model/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -35,7 +35,7 @@ constexpr auto getModelTypeVersion(TestType2*) noexcept { | ||||
| std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 	{ | ||||
| 		{ | ||||
| 			"ModelValue", | ||||
| 			ox::String("ModelValue"), | ||||
| 			[] { | ||||
| 				ox::ModelValue v; | ||||
| 				oxReturnError(v.setType<int32_t>()); | ||||
| @@ -48,7 +48,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 			} | ||||
| 		}, | ||||
| 		{ | ||||
| 			"getModelTypeName", | ||||
| 			ox::String("getModelTypeName"), | ||||
| 			[] { | ||||
| 				oxAssert(ox::getModelTypeName<TestType>() == TestType::TypeName, "getModelTypeName call failed"); | ||||
| 				oxAssert(ox::getModelTypeName<TestType2>() == ox::StringView("net.drinkingtea.model.test.TestType2"), "getModelTypeName call failed"); | ||||
| @@ -56,7 +56,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 			} | ||||
| 		}, | ||||
| 		{ | ||||
| 			"getModelTypeVersion", | ||||
| 			ox::String("getModelTypeVersion"), | ||||
| 			[] { | ||||
| 				oxAssert(ox::getModelTypeVersion<TestType>() == TestType::TypeVersion, "getModelTypeVersion call failed"); | ||||
| 				oxAssert(ox::getModelTypeVersion<TestType2>() == 2, "getModelTypeVersion call failed"); | ||||
| @@ -68,7 +68,7 @@ std::map<ox::String, ox::Error(*)()> tests = { | ||||
|  | ||||
| int main(int argc, const char **args) { | ||||
| 	if (argc > 0) { | ||||
| 		auto testName = args[1]; | ||||
| 		auto testName = ox::String(args[1]); | ||||
| 		if (tests.find(testName) != tests.end()) { | ||||
| 			oxAssert(tests[testName](), "Test failed..."); | ||||
| 		} | ||||
|   | ||||
							
								
								
									
										2
									
								
								deps/ox/src/ox/oc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								deps/ox/src/ox/oc/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -53,7 +53,7 @@ struct TestStruct { | ||||
| 	int32_t Int8 = 0; | ||||
| 	int unionIdx = 1; | ||||
| 	TestUnion Union; | ||||
| 	ox::String String = ""; | ||||
| 	ox::String String{""}; | ||||
| 	uint32_t List[4] = {0, 0, 0, 0}; | ||||
| 	ox::HashMap<ox::String, int> Map; | ||||
| 	TestStructNest EmptyStruct; | ||||
|   | ||||
							
								
								
									
										62
									
								
								deps/ox/src/ox/std/string.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										62
									
								
								deps/ox/src/ox/std/string.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -32,15 +32,15 @@ class BasicString { | ||||
|  | ||||
| 		constexpr explicit BasicString(std::size_t cap) noexcept; | ||||
|  | ||||
| 		constexpr BasicString(const char *str) noexcept; | ||||
| 		constexpr explicit BasicString(const char *str) noexcept; | ||||
|  | ||||
| 		constexpr BasicString(const char8_t *str) noexcept; | ||||
| 		constexpr explicit BasicString(const char8_t *str) noexcept; | ||||
|  | ||||
| 		constexpr BasicString(const char *str, std::size_t size) noexcept; | ||||
|  | ||||
| 		constexpr explicit BasicString(CRStringView str) noexcept; | ||||
|  | ||||
| 		constexpr BasicString(const BasicString&) noexcept; | ||||
| 		constexpr BasicString(BasicString const&) noexcept; | ||||
|  | ||||
| 		constexpr BasicString(BasicString&&) noexcept; | ||||
|  | ||||
| @@ -130,7 +130,7 @@ class BasicString { | ||||
|  | ||||
| 		constexpr BasicString &operator+=(StringView src) noexcept; | ||||
|  | ||||
| 		constexpr BasicString &operator+=(const BasicString &src) noexcept; | ||||
| 		constexpr BasicString &operator+=(BasicString const&src) noexcept; | ||||
|  | ||||
| 		constexpr BasicString operator+(const char *str) const noexcept; | ||||
|  | ||||
| @@ -142,23 +142,23 @@ class BasicString { | ||||
|  | ||||
| 		constexpr BasicString operator+(CRStringView src) const noexcept; | ||||
|  | ||||
| 		constexpr BasicString operator+(const BasicString &src) const noexcept; | ||||
| 		constexpr BasicString operator+(BasicString const&src) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator==(const char *other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator==(const OxString_c auto &other) const noexcept; | ||||
| 		constexpr bool operator==(OxString_c auto const&other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator!=(const char *other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator!=(const OxString_c auto &other) const noexcept; | ||||
| 		constexpr bool operator!=(OxString_c auto const&other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator<(const BasicString &other) const noexcept; | ||||
| 		constexpr bool operator<(BasicString const&other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator>(const BasicString &other) const noexcept; | ||||
| 		constexpr bool operator>(BasicString const&other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator<=(const BasicString &other) const noexcept; | ||||
| 		constexpr bool operator<=(BasicString const&other) const noexcept; | ||||
|  | ||||
| 		constexpr bool operator>=(const BasicString &other) const noexcept; | ||||
| 		constexpr bool operator>=(BasicString const&other) const noexcept; | ||||
|  | ||||
| 		constexpr char operator[](std::size_t i) const noexcept; | ||||
|  | ||||
| @@ -225,13 +225,8 @@ class BasicString { | ||||
| 		constexpr std::size_t bytes() const noexcept; | ||||
|  | ||||
| 	private: | ||||
| 		template<std::size_t OtherSize> | ||||
| 		constexpr void set(const BasicString<OtherSize> &src) noexcept; | ||||
|  | ||||
| 		constexpr void set(CRStringView str) noexcept; | ||||
|  | ||||
| 		constexpr void set(const char *str) noexcept; | ||||
|  | ||||
| 		constexpr void set(const char8_t *str) noexcept; | ||||
| }; | ||||
|  | ||||
| @@ -388,7 +383,7 @@ constexpr BasicString<SmallStringSize_v> &BasicString<SmallStringSize_v>::operat | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr BasicString<SmallStringSize_v> &BasicString<SmallStringSize_v>::operator+=(const BasicString &src) noexcept { | ||||
| constexpr BasicString<SmallStringSize_v> &BasicString<SmallStringSize_v>::operator+=(BasicString const&src) noexcept { | ||||
| 	oxIgnoreError(append(src.c_str(), src.len())); | ||||
| 	return *this; | ||||
| } | ||||
| @@ -436,7 +431,7 @@ constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operato | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(const BasicString &src) const noexcept { | ||||
| constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(BasicString const&src) const noexcept { | ||||
| 	const std::size_t strLen = src.len(); | ||||
| 	const auto currentLen = len(); | ||||
| 	BasicString<SmallStringSize_v> cpy(currentLen + strLen); | ||||
| @@ -459,7 +454,7 @@ constexpr bool BasicString<SmallStringSize_v>::operator==(const char *other) con | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator==(const OxString_c auto &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator==(OxString_c auto const&other) const noexcept { | ||||
| 	return ox::StringView(*this) == ox::StringView(other); | ||||
| } | ||||
|  | ||||
| @@ -469,27 +464,27 @@ constexpr bool BasicString<SmallStringSize_v>::operator!=(const char *other) con | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator!=(const OxString_c auto &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator!=(OxString_c auto const&other) const noexcept { | ||||
| 	return !operator==(other); | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator<(const BasicString &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator<(BasicString const&other) const noexcept { | ||||
| 	return ox_strcmp(c_str(), other.c_str()) < 0; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator>(const BasicString &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator>(BasicString const&other) const noexcept { | ||||
| 	return ox_strcmp(c_str(), other.c_str()) > 0; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator<=(const BasicString &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator<=(BasicString const&other) const noexcept { | ||||
| 	return ox_strcmp(c_str(), other.c_str()) < 1; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator>=(const BasicString &other) const noexcept { | ||||
| constexpr bool BasicString<SmallStringSize_v>::operator>=(BasicString const&other) const noexcept { | ||||
| 	return ox_strcmp(c_str(), other.c_str()) > -1; | ||||
| } | ||||
|  | ||||
| @@ -543,31 +538,14 @@ constexpr std::size_t BasicString<SmallStringSize_v>::len() const noexcept { | ||||
| 	return length; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| template<std::size_t OtherSize> | ||||
| constexpr void BasicString<SmallStringSize_v>::set(const BasicString<OtherSize> &src) noexcept { | ||||
| 	std::size_t strBytes = src.bytes(); | ||||
| 	m_buff.resize(strBytes); | ||||
| 	copy_n(src.begin(), strBytes, m_buff.data()); | ||||
| 	*m_buff.back().value = 0; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr void BasicString<SmallStringSize_v>::set(CRStringView str) noexcept { | ||||
| 	std::size_t strBytes = str.bytes(); | ||||
| 	std::size_t const strBytes = str.bytes(); | ||||
| 	m_buff.resize(strBytes + 1); | ||||
| 	copy_n(str.data(), strBytes, m_buff.data()); | ||||
| 	*m_buff.back().value = 0; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr void BasicString<SmallStringSize_v>::set(const char *str) noexcept { | ||||
| 	std::size_t strBytes = ox_strlen(str) + 1; | ||||
| 	m_buff.resize(strBytes); | ||||
| 	copy_n(str, strBytes, m_buff.data()); | ||||
| 	*m_buff.back().value = 0; | ||||
| } | ||||
|  | ||||
| template<std::size_t SmallStringSize_v> | ||||
| constexpr void BasicString<SmallStringSize_v>::set(const char8_t *str) noexcept { | ||||
| 	std::size_t strBytes = ox_strlen(str) + 1; | ||||
|   | ||||
							
								
								
									
										36
									
								
								deps/ox/src/ox/std/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								deps/ox/src/ox/std/test/tests.cpp
									
									
									
									
										vendored
									
									
								
							| @@ -14,7 +14,7 @@ | ||||
|  | ||||
| static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 	{ | ||||
| 		"malloc", | ||||
| 		ox::String("malloc"), | ||||
| 		[] { | ||||
| 			ox::Buffer buff(ox::units::MB); | ||||
| 			ox::heapmgr::initHeap(&buff[0], &buff[buff.size()-1]); | ||||
| @@ -26,7 +26,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"itoa", | ||||
| 		ox::String("itoa"), | ||||
| 		[]() { | ||||
| 			ox::Array<char, 10> buff; | ||||
| 			ox::CharBuffWriter bw(buff); | ||||
| @@ -42,31 +42,31 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"ABCDEFG != HIJKLMN", | ||||
| 		ox::String("ABCDEFG != HIJKLMN"), | ||||
| 		[]() { | ||||
| 			return OxError(ox_memcmp("ABCDEFG", "HIJKLMN", 7) >= 0); | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"HIJKLMN != ABCDEFG", | ||||
| 		ox::String("HIJKLMN != ABCDEFG"), | ||||
| 		[]() { | ||||
| 			return OxError(ox_memcmp("HIJKLMN", "ABCDEFG", 7) <= 0); | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"ABCDEFG == ABCDEFG", | ||||
| 		ox::String("ABCDEFG == ABCDEFG"), | ||||
| 		[]() { | ||||
| 			return OxError(ox_memcmp("ABCDEFG", "ABCDEFG", 7) != 0); | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"ABCDEFGHI == ABCDEFG", | ||||
| 		ox::String("ABCDEFGHI == ABCDEFG"), | ||||
| 		[]() { | ||||
| 			return OxError(ox_memcmp("ABCDEFGHI", "ABCDEFG", 7) != 0); | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"BString", | ||||
| 		ox::String("BString"), | ||||
| 		[]() { | ||||
| 			ox::BString<5> s; | ||||
| 			s += "A"; | ||||
| @@ -82,7 +82,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"String", | ||||
| 		ox::String("String"), | ||||
| 		[]() { | ||||
| 			ox::String s; | ||||
| 			s += "A"; | ||||
| @@ -113,7 +113,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"Vector", | ||||
| 		ox::String("Vector"), | ||||
| 		[] { | ||||
| 			ox::Vector<int> v; | ||||
| 			oxAssert(v.size() == 0, "Initial Vector size not 0"); | ||||
| @@ -130,7 +130,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"HashMap", | ||||
| 		ox::String("HashMap"), | ||||
| 		[] { | ||||
| 			ox::HashMap<const char*, int> si; | ||||
| 			si["asdf"] = 42; | ||||
| @@ -146,7 +146,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"Serialize-Int", | ||||
| 		ox::String("Serialize-Int"), | ||||
| 		[] { | ||||
| 			using BA = ox::Array<char, 4>; | ||||
| 			const auto actual = ox::serialize<uint32_t>(256).unwrap(); | ||||
| @@ -163,7 +163,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"BufferWriter", | ||||
| 		ox::String("BufferWriter"), | ||||
| 		[] { | ||||
| 			ox::Buffer b; | ||||
| 			ox::BufferWriter w(&b); | ||||
| @@ -180,7 +180,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"FromHex", | ||||
| 		ox::String("FromHex"), | ||||
| 		[] { | ||||
| 			oxExpect(ox::detail::fromHex("01").unwrap(), 0x01); | ||||
| 			oxExpect(ox::detail::fromHex("02").unwrap(), 0x02); | ||||
| @@ -203,7 +203,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"ToHex", | ||||
| 		ox::String("ToHex"), | ||||
| 		[] { | ||||
| 			oxExpect(ox::detail::toHex(0x01), "01"); | ||||
| 			oxExpect(ox::detail::toHex(0x02), "02"); | ||||
| @@ -223,7 +223,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"UUID", | ||||
| 		ox::String("UUID"), | ||||
| 		[] { | ||||
| 			constexpr ox::StringView uuidStr = "8d814442-f46e-4cc3-8edc-ca3c01cc86db"; | ||||
| 			oxRequire(uuid, ox::UUID::fromString(uuidStr)); | ||||
| @@ -234,7 +234,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"UUID::generate", | ||||
| 		ox::String("UUID::generate"), | ||||
| 		[] { | ||||
| 			ox::UUID::seedGenerator({1234, 4321}); | ||||
| 			oxExpect(ox::UUID::generate().unwrap().toString(), "5c3f4b5e-ccbf-4727-7f03-3053dedc8827"); | ||||
| @@ -244,7 +244,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
| 		} | ||||
| 	}, | ||||
| 	{ | ||||
| 		"StringSplit", | ||||
| 		ox::String("StringSplit"), | ||||
| 		[] { | ||||
| 			ox::StringView sv = "ab.cd"; | ||||
| 			auto list = ox::split(sv, "."); | ||||
| @@ -314,7 +314,7 @@ static std::map<ox::String, ox::Error(*)()> tests = { | ||||
|  | ||||
| int main(int argc, const char **args) { | ||||
| 	if (argc > 1) { | ||||
| 		auto testName = args[1]; | ||||
| 		auto testName = ox::String(args[1]); | ||||
| 		if (tests.find(testName) != tests.end()) { | ||||
| 			oxAssert(tests[testName](), "Test returned Error"); | ||||
| 			return 0; | ||||
|   | ||||
							
								
								
									
										4
									
								
								deps/ox/src/ox/std/trace.hpp
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								deps/ox/src/ox/std/trace.hpp
									
									
									
									
										vendored
									
									
								
							| @@ -39,10 +39,10 @@ enum class MsgId: char { | ||||
| struct TraceMsgRcv { | ||||
| 	static constexpr auto TypeName = "net.drinkingtea.ox.trace.TraceMsg"; | ||||
| 	static constexpr auto TypeVersion = 1; | ||||
| 	BasicString<50> file = ""; | ||||
| 	BasicString<50> file{""}; | ||||
| 	int line = 0; | ||||
| 	uint64_t time = 0; | ||||
| 	BasicString<50> ch = ""; | ||||
| 	BasicString<50> ch{""}; | ||||
| 	BasicString<100> msg; | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user