[ox] Cleanup String/StringView conversions, MallocaPtr
This commit is contained in:
parent
5b91ad25c2
commit
a84a829769
12
deps/ox/src/ox/clargs/clargs.cpp
vendored
12
deps/ox/src/ox/clargs/clargs.cpp
vendored
@ -37,32 +37,32 @@ ClArgs::ClArgs(int argc, const char **args) noexcept {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ClArgs::getBool(ox::CRStringView arg, bool defaultValue) const noexcept {
|
bool ClArgs::getBool(ox::CRString arg, bool defaultValue) const noexcept {
|
||||||
auto [value, err] = m_ints.at(arg);
|
auto [value, err] = m_ints.at(arg);
|
||||||
return !err ? *value : defaultValue;
|
return !err ? *value : defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
String ClArgs::getString(ox::CRStringView arg, const char *defaultValue) const noexcept {
|
String ClArgs::getString(ox::CRString arg, const char *defaultValue) const noexcept {
|
||||||
auto [value, err] = m_strings.at(arg);
|
auto [value, err] = m_strings.at(arg);
|
||||||
return !err ? *value : defaultValue;
|
return !err ? *value : defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ClArgs::getInt(ox::CRStringView arg, int defaultValue) const noexcept {
|
int ClArgs::getInt(ox::CRString arg, int defaultValue) const noexcept {
|
||||||
auto [value, err] = m_ints.at(arg);
|
auto [value, err] = m_ints.at(arg);
|
||||||
return !err ? *value : defaultValue;
|
return !err ? *value : defaultValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<bool> ClArgs::getBool(ox::CRStringView arg) const noexcept {
|
Result<bool> ClArgs::getBool(ox::CRString arg) const noexcept {
|
||||||
oxRequire(out, m_bools.at(arg));
|
oxRequire(out, m_bools.at(arg));
|
||||||
return *out;
|
return *out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<String> ClArgs::getString(ox::CRStringView argName) const noexcept {
|
Result<String> ClArgs::getString(ox::CRString argName) const noexcept {
|
||||||
oxRequire(out, m_strings.at(argName));
|
oxRequire(out, m_strings.at(argName));
|
||||||
return *out;
|
return *out;
|
||||||
}
|
}
|
||||||
|
|
||||||
Result<int> ClArgs::getInt(ox::CRStringView arg) const noexcept {
|
Result<int> ClArgs::getInt(ox::CRString arg) const noexcept {
|
||||||
oxRequire(out, m_ints.at(arg));
|
oxRequire(out, m_ints.at(arg));
|
||||||
return *out;
|
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;
|
ClArgs(int argc, const char **args) noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
bool getBool(ox::CRStringView arg, bool defaultValue) const noexcept;
|
bool getBool(ox::CRString arg, bool defaultValue) const noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
String getString(ox::CRStringView argName, const char *defaultValue) const noexcept;
|
String getString(ox::CRString argName, const char *defaultValue) const noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
int getInt(ox::CRStringView arg, int defaultValue) const noexcept;
|
int getInt(ox::CRString arg, int defaultValue) const noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
Result<bool> getBool(ox::CRStringView arg) const noexcept;
|
Result<bool> getBool(ox::CRString arg) const noexcept;
|
||||||
|
|
||||||
[[nodiscard]]
|
[[nodiscard]]
|
||||||
Result<String> getString(ox::CRStringView argName) const noexcept;
|
Result<String> getString(ox::CRString argName) const noexcept;
|
||||||
|
|
||||||
Result<int> getInt(ox::CRStringView arg) const noexcept;
|
Result<int> getInt(ox::CRString arg) const noexcept;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
10
deps/ox/src/ox/event/signal.hpp
vendored
10
deps/ox/src/ox/event/signal.hpp
vendored
@ -245,7 +245,7 @@ class Signal<Error(Args...)> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Error call(Args... args) noexcept final {
|
Error call(Args... args) noexcept final {
|
||||||
return f(args...);
|
return f(ox::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -260,7 +260,7 @@ class Signal<Error(Args...)> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Error call(Args... args) noexcept final {
|
Error call(Args... args) noexcept final {
|
||||||
return (m_receiver->*(m_methodPtr))(args...);
|
return (m_receiver->*(m_methodPtr))(ox::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanup(Signal *signal) noexcept final {
|
void cleanup(Signal *signal) noexcept final {
|
||||||
@ -286,7 +286,7 @@ class Signal<Error(Args...)> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Error call(Args... args) noexcept final {
|
Error call(Args... args) noexcept final {
|
||||||
return (m_receiver->*(m_methodPtr))(args...);
|
return (m_receiver->*(m_methodPtr))(ox::forward<Args>(args)...);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cleanup(Signal*) noexcept final {
|
void cleanup(Signal*) noexcept final {
|
||||||
@ -391,14 +391,14 @@ Error Signal<Error(Args...)>::disconnectObject(const void *receiver) const noexc
|
|||||||
template<class... Args>
|
template<class... Args>
|
||||||
void Signal<Error(Args...)>::emit(Args... args) const noexcept {
|
void Signal<Error(Args...)>::emit(Args... args) const noexcept {
|
||||||
for (auto &f : m_slots) {
|
for (auto &f : m_slots) {
|
||||||
oxIgnoreError(f->call(args...));
|
oxIgnoreError(f->call(ox::forward<Args>(args)...));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class... Args>
|
template<class... Args>
|
||||||
Error Signal<Error(Args...)>::emitCheckError(Args... args) const noexcept {
|
Error Signal<Error(Args...)>::emitCheckError(Args... args) const noexcept {
|
||||||
for (auto &f : m_slots) {
|
for (auto &f : m_slots) {
|
||||||
oxReturnError(f->call(args...));
|
oxReturnError(f->call(ox::forward<Args>(args)...));
|
||||||
}
|
}
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
|
1
deps/ox/src/ox/fs/CMakeLists.txt
vendored
1
deps/ox/src/ox/fs/CMakeLists.txt
vendored
@ -44,7 +44,6 @@ if(NOT OX_BARE_METAL)
|
|||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
oxfs-tool
|
oxfs-tool
|
||||||
OxFS
|
OxFS
|
||||||
OxStd
|
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
|
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
2
deps/ox/src/ox/fs/filesystem/directory.hpp
vendored
@ -252,7 +252,7 @@ Error Directory<FileStore, InodeId_t>::write(PathIterator path, uint64_t inode64
|
|||||||
|
|
||||||
oxTracef("ox::fs::Directory::write", "Attempting to write Directory entry: {}", name->data());
|
oxTracef("ox::fs::Directory::write", "Attempting to write Directory entry: {}", name->data());
|
||||||
oxReturnError(val->init(inode, name->data(), val.size()));
|
oxReturnError(val->init(inode, name->data(), val.size()));
|
||||||
return m_fs.write(m_inodeId, cpy, cpy->size(), static_cast<uint8_t>(FileType::Directory));
|
return m_fs.write(m_inodeId, cpy.get(), cpy->size(), static_cast<uint8_t>(FileType::Directory));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
1
deps/ox/src/ox/fs/test/CMakeLists.txt
vendored
1
deps/ox/src/ox/fs/test/CMakeLists.txt
vendored
@ -6,7 +6,6 @@ add_executable(
|
|||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
FSTests
|
FSTests
|
||||||
OxFS
|
OxFS
|
||||||
OxStd
|
|
||||||
OxMetalClaw
|
OxMetalClaw
|
||||||
)
|
)
|
||||||
|
|
||||||
|
2
deps/ox/src/ox/logconn/logconn.cpp
vendored
2
deps/ox/src/ox/logconn/logconn.cpp
vendored
@ -58,7 +58,7 @@ ox::Error LoggerConn::initConn(ox::CRStringView appName) noexcept {
|
|||||||
addr.sin_port = htons(5590);
|
addr.sin_port = htons(5590);
|
||||||
m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
oxReturnError(OxError(static_cast<ox::ErrorCode>(connect(m_socket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)))));
|
oxReturnError(OxError(static_cast<ox::ErrorCode>(connect(m_socket, reinterpret_cast<sockaddr*>(&addr), sizeof(addr)))));
|
||||||
return sendInit({.appName = appName});
|
return sendInit({.appName = ox::BasicString<128>(appName)});
|
||||||
}
|
}
|
||||||
|
|
||||||
ox::Error LoggerConn::send(const char *buff, std::size_t len) const noexcept {
|
ox::Error LoggerConn::send(const char *buff, std::size_t len) const noexcept {
|
||||||
|
2
deps/ox/src/ox/mc/read.hpp
vendored
2
deps/ox/src/ox/mc/read.hpp
vendored
@ -254,7 +254,7 @@ constexpr Error MetalClawReaderTemplate<Reader>::field(const char*, HashMap<Stri
|
|||||||
auto wkey = ox_malloca(keyLen + 1, char, 0);
|
auto wkey = ox_malloca(keyLen + 1, char, 0);
|
||||||
auto wkeyPtr = wkey.get();
|
auto wkeyPtr = wkey.get();
|
||||||
oxReturnError(handler.fieldCString("", &wkeyPtr, keyLen + 1));
|
oxReturnError(handler.fieldCString("", &wkeyPtr, keyLen + 1));
|
||||||
return handler.field("", &val[wkey.get()]);
|
return handler.field("", &val[wkeyPtr]);
|
||||||
};
|
};
|
||||||
for (std::size_t i = 0; i < len; ++i) {
|
for (std::size_t i = 0; i < len; ++i) {
|
||||||
oxReturnError(loopBody(handler, *val));
|
oxReturnError(loopBody(handler, *val));
|
||||||
|
2
deps/ox/src/ox/mc/write.hpp
vendored
2
deps/ox/src/ox/mc/write.hpp
vendored
@ -363,7 +363,7 @@ constexpr Error MetalClawWriter<Writer>::field(const char*, const HashMap<String
|
|||||||
constexpr auto loopBody = [](auto &handler, auto const&key, auto const&val) -> ox::Error {
|
constexpr auto loopBody = [](auto &handler, auto const&key, auto const&val) -> ox::Error {
|
||||||
const auto keyLen = ox_strlen(key);
|
const auto keyLen = ox_strlen(key);
|
||||||
auto wkey = ox_malloca(keyLen + 1, char, 0);
|
auto wkey = ox_malloca(keyLen + 1, char, 0);
|
||||||
memcpy(wkey, key.c_str(), keyLen + 1);
|
memcpy(wkey.get(), key.c_str(), keyLen + 1);
|
||||||
oxReturnError(handler.fieldCString("", wkey.get(), keyLen));
|
oxReturnError(handler.fieldCString("", wkey.get(), keyLen));
|
||||||
oxRequireM(value, val.at(key));
|
oxRequireM(value, val.at(key));
|
||||||
return handler.field("", value);
|
return handler.field("", value);
|
||||||
|
15
deps/ox/src/ox/model/descwrite.hpp
vendored
15
deps/ox/src/ox/model/descwrite.hpp
vendored
@ -175,8 +175,9 @@ class TypeDescWriter {
|
|||||||
constexpr TypeDescWriter::TypeDescWriter(TypeStore *typeStore) noexcept: m_typeStore(typeStore) {}
|
constexpr TypeDescWriter::TypeDescWriter(TypeStore *typeStore) noexcept: m_typeStore(typeStore) {}
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
constexpr ox::Error TypeDescWriter::setTypeInfo(CRStringView typeName, int typeVersion,
|
constexpr ox::Error TypeDescWriter::setTypeInfo(
|
||||||
const TypeParamPack &typeParams, std::size_t) noexcept {
|
CRStringView typeName, int typeVersion,
|
||||||
|
const TypeParamPack &typeParams, std::size_t) noexcept {
|
||||||
PrimitiveType pt;
|
PrimitiveType pt;
|
||||||
if constexpr(is_union_v<T>) {
|
if constexpr(is_union_v<T>) {
|
||||||
pt = PrimitiveType::Union;
|
pt = PrimitiveType::Union;
|
||||||
@ -197,7 +198,7 @@ constexpr Error TypeDescWriter::field(CRStringView name, const T*, std::size_t,
|
|||||||
constexpr typename remove_pointer<T>::type *p = nullptr;
|
constexpr typename remove_pointer<T>::type *p = nullptr;
|
||||||
const auto t = type(p);
|
const auto t = type(p);
|
||||||
oxAssert(t != nullptr, "field(const char *name, T *val, std::size_t): Type not found or generated");
|
oxAssert(t != nullptr, "field(const char *name, T *val, std::size_t): Type not found or generated");
|
||||||
m_type->fieldList.emplace_back(t, name, detail::indirectionLevels_v<T> + 1, subscriptStack, buildTypeId(*t));
|
m_type->fieldList.emplace_back(t, String(name), detail::indirectionLevels_v<T> + 1, subscriptStack, buildTypeId(*t));
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
return OxError(1);
|
return OxError(1);
|
||||||
@ -208,7 +209,7 @@ constexpr Error TypeDescWriter::field(CRStringView name, UnionView<T, force> val
|
|||||||
if (m_type) {
|
if (m_type) {
|
||||||
const auto t = type(val);
|
const auto t = type(val);
|
||||||
oxAssert(t != nullptr, "field(const char *name, T val): Type not found or generated");
|
oxAssert(t != nullptr, "field(const char *name, T val): Type not found or generated");
|
||||||
m_type->fieldList.emplace_back(t, name, 0, SubscriptStack{}, t->typeName);
|
m_type->fieldList.emplace_back(t, String(name), 0, SubscriptStack{}, t->typeName);
|
||||||
return OxError(0);
|
return OxError(0);
|
||||||
}
|
}
|
||||||
return OxError(1);
|
return OxError(1);
|
||||||
@ -226,7 +227,7 @@ constexpr Error TypeDescWriter::field(CRStringView name, const T *val) noexcept
|
|||||||
} else {
|
} else {
|
||||||
const auto t = type(val);
|
const auto t = type(val);
|
||||||
oxAssert(t != nullptr, "field(const char *name, T *val): Type not found or generated");
|
oxAssert(t != nullptr, "field(const char *name, T *val): Type not found or generated");
|
||||||
m_type->fieldList.emplace_back(t, name, 0, SubscriptStack{}, buildTypeId(*t));
|
m_type->fieldList.emplace_back(t, String(name), 0, SubscriptStack{}, buildTypeId(*t));
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -237,7 +238,7 @@ template<typename ...Args>
|
|||||||
constexpr Error TypeDescWriter::fieldCString(CRStringView name, Args&&...) noexcept {
|
constexpr Error TypeDescWriter::fieldCString(CRStringView name, Args&&...) noexcept {
|
||||||
constexpr auto s = "";
|
constexpr auto s = "";
|
||||||
const auto t = type(s);
|
const auto t = type(s);
|
||||||
m_type->fieldList.emplace_back(t, name, 0, SubscriptStack{}, t->typeName);
|
m_type->fieldList.emplace_back(t, String(name), 0, SubscriptStack{}, t->typeName);
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -344,7 +345,7 @@ constexpr const DescriptorType *TypeDescWriter::getType(CRStringView tn, int typ
|
|||||||
oxAssert(type != nullptr, "TypeDescWriter::getType returning null DescriptorType");
|
oxAssert(type != nullptr, "TypeDescWriter::getType returning null DescriptorType");
|
||||||
return type;
|
return type;
|
||||||
} else {
|
} else {
|
||||||
auto dt = ox::make_unique<DescriptorType>(tn, typeVersion, pt, typeParams);
|
auto dt = ox::make_unique<DescriptorType>(String(tn), typeVersion, pt, typeParams);
|
||||||
dt->length = b;
|
dt->length = b;
|
||||||
const auto out = dt.get();
|
const auto out = dt.get();
|
||||||
const auto typeId = buildTypeId(tn, typeVersion, typeParams);
|
const auto typeId = buildTypeId(tn, typeVersion, typeParams);
|
||||||
|
4
deps/ox/src/ox/model/typestore.hpp
vendored
4
deps/ox/src/ox/model/typestore.hpp
vendored
@ -44,11 +44,11 @@ class TypeStore {
|
|||||||
return out->get();
|
return out->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr DescriptorType *getInit(const auto &typeName, int typeVersion, PrimitiveType pt,
|
constexpr DescriptorType *getInit(CRStringView typeName, int typeVersion, PrimitiveType pt,
|
||||||
const TypeParamPack &typeParams) noexcept {
|
const TypeParamPack &typeParams) noexcept {
|
||||||
const auto typeId = buildTypeId(typeName, typeVersion, typeParams);
|
const auto typeId = buildTypeId(typeName, typeVersion, typeParams);
|
||||||
auto &out = m_cache[typeId];
|
auto &out = m_cache[typeId];
|
||||||
out = ox::make_unique<DescriptorType>(typeName, typeVersion, pt, typeParams);
|
out = ox::make_unique<DescriptorType>(String(typeName), typeVersion, pt, typeParams);
|
||||||
return out.get();
|
return out.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
12
deps/ox/src/ox/std/error.hpp
vendored
12
deps/ox/src/ox/std/error.hpp
vendored
@ -25,8 +25,6 @@ class exception {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "def.hpp"
|
#include "def.hpp"
|
||||||
#include "defines.hpp"
|
|
||||||
#include "strongint.hpp"
|
|
||||||
#include "typetraits.hpp"
|
#include "typetraits.hpp"
|
||||||
#include "utility.hpp"
|
#include "utility.hpp"
|
||||||
|
|
||||||
@ -191,6 +189,13 @@ struct [[nodiscard]] Result {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr auto &unwrapThrow() {
|
||||||
|
if (error) {
|
||||||
|
throw ox::Exception(error);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
constexpr const auto &unwrap() const noexcept {
|
constexpr const auto &unwrap() const noexcept {
|
||||||
if (error) [[unlikely]] {
|
if (error) [[unlikely]] {
|
||||||
oxPanic(error, "Failed unwrap");
|
oxPanic(error, "Failed unwrap");
|
||||||
@ -198,7 +203,8 @@ struct [[nodiscard]] Result {
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr ox::Result<T> to(const auto &f) noexcept {
|
template<typename U = T>
|
||||||
|
constexpr ox::Result<U> to(const auto &f) noexcept {
|
||||||
if (error) [[unlikely]] {
|
if (error) [[unlikely]] {
|
||||||
return OxError(1);
|
return OxError(1);
|
||||||
}
|
}
|
||||||
|
15
deps/ox/src/ox/std/new.hpp
vendored
15
deps/ox/src/ox/std/new.hpp
vendored
@ -115,11 +115,11 @@ class MallocaPtr {
|
|||||||
return reinterpret_cast<T*>(m_val);
|
return reinterpret_cast<T*>(m_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr const T &operator=(MallocaPtr &other) = delete;
|
constexpr MallocaPtr &operator=(MallocaPtr &other) = delete;
|
||||||
|
|
||||||
constexpr const T &operator=(const MallocaPtr &other) = delete;
|
constexpr MallocaPtr &operator=(const MallocaPtr &other) = delete;
|
||||||
|
|
||||||
constexpr const T &operator=(MallocaPtr &&other) noexcept {
|
constexpr MallocaPtr &operator=(MallocaPtr &&other) noexcept {
|
||||||
if (m_onHeap && m_val) {
|
if (m_onHeap && m_val) {
|
||||||
delete[] reinterpret_cast<uint8_t*>(m_val);
|
delete[] reinterpret_cast<uint8_t*>(m_val);
|
||||||
}
|
}
|
||||||
@ -127,6 +127,7 @@ class MallocaPtr {
|
|||||||
m_val = other.m_val;
|
m_val = other.m_val;
|
||||||
other.m_onHeap = false;
|
other.m_onHeap = false;
|
||||||
other.m_val = nullptr;
|
other.m_val = nullptr;
|
||||||
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr const T *operator->() const noexcept {
|
constexpr const T *operator->() const noexcept {
|
||||||
@ -137,11 +138,11 @@ class MallocaPtr {
|
|||||||
return reinterpret_cast<T*>(m_val);
|
return reinterpret_cast<T*>(m_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr operator const T*() const noexcept {
|
constexpr explicit operator const T*() const noexcept {
|
||||||
return reinterpret_cast<T*>(m_val);
|
return reinterpret_cast<T*>(m_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr operator T*() noexcept {
|
constexpr explicit operator T*() noexcept {
|
||||||
return reinterpret_cast<T*>(m_val);
|
return reinterpret_cast<T*>(m_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,6 +154,10 @@ class MallocaPtr {
|
|||||||
return *reinterpret_cast<T*>(m_val);
|
return *reinterpret_cast<T*>(m_val);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
constexpr bool operator==(std::nullptr_t) const noexcept {
|
||||||
|
return m_val == nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
constexpr bool operator==(const MallocaPtr<T> &other) const noexcept {
|
constexpr bool operator==(const MallocaPtr<T> &other) const noexcept {
|
||||||
return m_val == other.m_val && m_onHeap == other.m_onHeap;
|
return m_val == other.m_val && m_onHeap == other.m_onHeap;
|
||||||
}
|
}
|
||||||
|
2
deps/ox/src/ox/std/span.hpp
vendored
2
deps/ox/src/ox/std/span.hpp
vendored
@ -10,8 +10,6 @@
|
|||||||
|
|
||||||
#include "bit.hpp"
|
#include "bit.hpp"
|
||||||
#include "iterator.hpp"
|
#include "iterator.hpp"
|
||||||
#include "typetraits.hpp"
|
|
||||||
#include "types.hpp"
|
|
||||||
#include "vector.hpp"
|
#include "vector.hpp"
|
||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
17
deps/ox/src/ox/std/string.hpp
vendored
17
deps/ox/src/ox/std/string.hpp
vendored
@ -13,12 +13,10 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "algorithm.hpp"
|
#include "algorithm.hpp"
|
||||||
#include "buffer.hpp"
|
|
||||||
#include "memops.hpp"
|
#include "memops.hpp"
|
||||||
#include "serialize.hpp"
|
#include "serialize.hpp"
|
||||||
#include "stringview.hpp"
|
#include "stringview.hpp"
|
||||||
#include "strops.hpp"
|
#include "strops.hpp"
|
||||||
#include "typetraits.hpp"
|
|
||||||
#include "vector.hpp"
|
#include "vector.hpp"
|
||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
@ -40,7 +38,7 @@ class BasicString {
|
|||||||
|
|
||||||
constexpr BasicString(const char *str, std::size_t size) noexcept;
|
constexpr BasicString(const char *str, std::size_t size) noexcept;
|
||||||
|
|
||||||
constexpr BasicString(CRStringView str) noexcept;
|
constexpr explicit BasicString(CRStringView str) noexcept;
|
||||||
|
|
||||||
constexpr BasicString(const BasicString&) noexcept;
|
constexpr BasicString(const BasicString&) noexcept;
|
||||||
|
|
||||||
@ -140,6 +138,8 @@ class BasicString {
|
|||||||
|
|
||||||
constexpr BasicString operator+(Integer_c auto i) const noexcept;
|
constexpr BasicString operator+(Integer_c auto i) const noexcept;
|
||||||
|
|
||||||
|
constexpr BasicString operator+(CRStringView src) const noexcept;
|
||||||
|
|
||||||
constexpr BasicString operator+(const BasicString &src) const noexcept;
|
constexpr BasicString operator+(const BasicString &src) const noexcept;
|
||||||
|
|
||||||
constexpr bool operator==(const char *other) const noexcept;
|
constexpr bool operator==(const char *other) const noexcept;
|
||||||
@ -414,6 +414,17 @@ constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operato
|
|||||||
return *this + str;
|
return *this + str;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<std::size_t SmallStringSize_v>
|
||||||
|
constexpr BasicString<SmallStringSize_v> BasicString<SmallStringSize_v>::operator+(CRStringView src) const noexcept {
|
||||||
|
const std::size_t strLen = src.len();
|
||||||
|
const auto currentLen = len();
|
||||||
|
BasicString<SmallStringSize_v> cpy(currentLen + strLen);
|
||||||
|
cpy.m_buff.resize(m_buff.size() + strLen);
|
||||||
|
memcpy(&cpy.m_buff[0], m_buff.data(), currentLen);
|
||||||
|
memcpy(&cpy.m_buff[currentLen], src.data(), strLen + 1);
|
||||||
|
return cpy;
|
||||||
|
}
|
||||||
|
|
||||||
template<std::size_t SmallStringSize_v>
|
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+(const BasicString &src) const noexcept {
|
||||||
const std::size_t strLen = src.len();
|
const std::size_t strLen = src.len();
|
||||||
|
2
deps/ox/src/ox/std/trace.hpp
vendored
2
deps/ox/src/ox/std/trace.hpp
vendored
@ -131,7 +131,7 @@ class OutStream {
|
|||||||
m_msg.file = file;
|
m_msg.file = file;
|
||||||
m_msg.line = line;
|
m_msg.line = line;
|
||||||
m_msg.ch = ch;
|
m_msg.ch = ch;
|
||||||
m_msg.msg = msg;
|
m_msg.msg = BasicString<100>(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
constexpr OutStream(const char *file, int line, const char *ch, const char *msg = "") noexcept {
|
constexpr OutStream(const char *file, int line, const char *ch, const char *msg = "") noexcept {
|
||||||
|
3
deps/ox/src/ox/std/uuid.hpp
vendored
3
deps/ox/src/ox/std/uuid.hpp
vendored
@ -10,11 +10,10 @@
|
|||||||
|
|
||||||
#include "array.hpp"
|
#include "array.hpp"
|
||||||
#include "bstring.hpp"
|
#include "bstring.hpp"
|
||||||
|
#include "buffer.hpp"
|
||||||
#include "random.hpp"
|
#include "random.hpp"
|
||||||
#include "ranges.hpp"
|
#include "ranges.hpp"
|
||||||
#include "stringview.hpp"
|
#include "stringview.hpp"
|
||||||
#include "strops.hpp"
|
|
||||||
#include "trace.hpp"
|
|
||||||
|
|
||||||
namespace ox {
|
namespace ox {
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user