[ox/mc,ox/oc] Fix write for ox::Array, cleanup

This commit is contained in:
2023-12-04 21:43:06 -06:00
parent 402f54b3e3
commit 0d606643f5
3 changed files with 41 additions and 110 deletions

View File

@@ -26,18 +26,10 @@ Error OrganicClawWriter::fieldCString(const char *key, const char *const*val, in
return OxError(0);
}
Error OrganicClawWriter::fieldCString(const char *key, char **val, int len) noexcept {
return fieldCString(key, const_cast<const char**>(val), len);
}
Error OrganicClawWriter::fieldCString(const char *key, const char *const*val) noexcept {
return fieldCString(key, const_cast<const char**>(val), {});
}
Error OrganicClawWriter::fieldCString(const char *key, char **val) noexcept {
return fieldCString(key, const_cast<const char**>(val), {});
}
Error OrganicClawWriter::field(const char *key, const UUID *uuid) noexcept {
const auto uuidStr = uuid->toString();
if (targetValid() && uuidStr.len()) {

View File

@@ -36,7 +36,7 @@ class OrganicClawWriter {
explicit OrganicClawWriter(Json::Value json, int unionIdx = -1) noexcept;
Error field(const char *key, CommonPtrWith<int8_t> auto *val) noexcept {
Error field(const char *key, const int8_t *val) noexcept {
if (*val) {
value(key) = *val;
}
@@ -44,7 +44,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<int16_t> auto *val) noexcept {
Error field(const char *key, const int16_t *val) noexcept {
if (*val) {
value(key) = *val;
}
@@ -52,7 +52,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<int32_t> auto *val) noexcept {
Error field(const char *key, const int32_t *val) noexcept {
if (*val) {
value(key) = *val;
}
@@ -60,7 +60,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<int64_t> auto *val) noexcept {
Error field(const char *key, const int64_t *val) noexcept {
if (*val) {
value(key) = *val;
}
@@ -69,7 +69,7 @@ class OrganicClawWriter {
}
Error field(const char *key, CommonPtrWith<uint8_t> auto *val) noexcept {
Error field(const char *key, const uint8_t *val) noexcept {
if (*val) {
value(key) = *val;
}
@@ -77,7 +77,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<uint16_t> auto *val) noexcept {
Error field(const char *key, const uint16_t *val) noexcept {
if (targetValid() && *val) {
value(key) = *val;
}
@@ -85,7 +85,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<uint32_t> auto *val) noexcept {
Error field(const char *key, const uint32_t *val) noexcept {
if (targetValid() && *val) {
value(key) = *val;
}
@@ -93,7 +93,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<uint64_t> auto *val) noexcept {
Error field(const char *key, const uint64_t *val) noexcept {
if (targetValid() && *val) {
value(key) = *val;
}
@@ -101,7 +101,7 @@ class OrganicClawWriter {
return OxError(0);
}
Error field(const char *key, CommonPtrWith<bool> auto *val) noexcept {
Error field(const char *key, const bool *val) noexcept {
if (targetValid() && *val) {
value(key) = *val;
}
@@ -109,9 +109,6 @@ class OrganicClawWriter {
return {};
}
template<typename T>
Error field(const char*, T *val, std::size_t len) noexcept;
template<typename U, bool force = true>
Error field(const char*, UnionView<U, force> val) noexcept;
@@ -134,11 +131,6 @@ class OrganicClawWriter {
return {};
}
template<typename T>
Error field(const char *key, HashMap<String, T> *val) noexcept {
return field(key, const_cast<const HashMap<String, T>*>(val));
}
template<std::size_t L>
Error field(const char *key, const BString<L> *val) noexcept {
if (targetValid() && val->len()) {
@@ -148,15 +140,6 @@ class OrganicClawWriter {
return {};
}
template<std::size_t L>
Error field(const char *key, BString<L> *val) noexcept {
if (targetValid() && val->len()) {
value(key) = val->c_str();
}
++m_fieldIt;
return {};
}
template<std::size_t L>
Error field(const char *key, const BasicString<L> *val) noexcept {
if (targetValid() && val->len()) {
@@ -166,23 +149,17 @@ class OrganicClawWriter {
return OxError(0);
}
template<std::size_t L>
Error field(const char *key, BasicString<L> *val) noexcept {
return field(key, const_cast<const BasicString<L>*>(val));
}
Error fieldCString(const char*, const char *const*val, int len) noexcept;
Error fieldCString(const char *name, char **val, int len) noexcept;
Error fieldCString(const char *name, const char *const*val) noexcept;
Error fieldCString(const char *name, char **val) noexcept;
Error field(const char *key, const UUID *uuid) noexcept;
template<typename T>
Error field(const char*, T *val) noexcept;
Error field(const char*, const T *val, std::size_t len) noexcept;
template<typename T>
Error field(const char*, const T *val) noexcept;
template<typename T>
constexpr ox::Error setTypeInfo(
@@ -200,6 +177,7 @@ class OrganicClawWriter {
return {};
}
[[nodiscard]]
static constexpr auto opType() noexcept {
return OpType::Write;
}
@@ -216,7 +194,7 @@ class OrganicClawWriter {
};
template<typename T>
Error OrganicClawWriter::field(const char *key, T *val, std::size_t len) noexcept {
Error OrganicClawWriter::field(const char *key, const T *val, std::size_t len) noexcept {
if (targetValid() && len) {
OrganicClawWriter w((Json::Value(Json::arrayValue)));
ModelHandlerInterface handler{&w};
@@ -230,7 +208,7 @@ Error OrganicClawWriter::field(const char *key, T *val, std::size_t len) noexcep
}
template<typename T>
Error OrganicClawWriter::field(const char *key, T *val) noexcept {
Error OrganicClawWriter::field(const char *key, const T *val) noexcept {
if constexpr(isVector_v<T> || isArray_v<T>) {
return field(key, val->data(), val->size());
} else if (val && targetValid()) {