[ox] Cleanup serialization writers, make MC and Claw use Writer_c
This commit is contained in:
8
deps/ox/src/ox/oc/test/tests.cpp
vendored
8
deps/ox/src/ox/oc/test/tests.cpp
vendored
@@ -132,7 +132,7 @@ const std::map<std::string_view, ox::Error(*)()> tests = {
|
||||
// This test doesn't confirm much, but it does show that the writer
|
||||
// doesn't segfault
|
||||
TestStruct ts;
|
||||
return ox::writeOC(&ts).error;
|
||||
return ox::writeOC(ts).error;
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -153,7 +153,7 @@ const std::map<std::string_view, ox::Error(*)()> tests = {
|
||||
testIn.Struct.Int = 300;
|
||||
testIn.Struct.String = "Test String 2";
|
||||
|
||||
auto [oc, writeErr] = ox::writeOC(&testIn);
|
||||
auto [oc, writeErr] = ox::writeOC(testIn);
|
||||
oxAssert(writeErr, "writeOC failed");
|
||||
oxOutf("{}\n", oc.data());
|
||||
auto [testOut, readErr] = ox::readOC<TestStruct>(oc.data());
|
||||
@@ -205,7 +205,7 @@ const std::map<std::string_view, ox::Error(*)()> tests = {
|
||||
testIn.Struct.String = "Test String 2";
|
||||
testIn.unionIdx = 1;
|
||||
testIn.Union.Int = 93;
|
||||
oxAssert(ox::writeOC(&testIn).moveTo(&dataBuff), "Data generation failed");
|
||||
oxAssert(ox::writeOC(testIn).moveTo(&dataBuff), "Data generation failed");
|
||||
ox::TypeStore typeStore;
|
||||
auto type = ox::buildTypeDef(&typeStore, &testIn);
|
||||
oxAssert(type.error, "Descriptor write failed");
|
||||
@@ -254,7 +254,7 @@ const std::map<std::string_view, ox::Error(*)()> tests = {
|
||||
testIn.Struct.Int = 300;
|
||||
testIn.Struct.String = "Test String 2";
|
||||
|
||||
auto [oc, ocErr] = ox::writeOC(&testIn);
|
||||
auto [oc, ocErr] = ox::writeOC(testIn);
|
||||
oxAssert(ocErr, "Data generation failed");
|
||||
ox::TypeStore typeStore;
|
||||
auto type = ox::buildTypeDef(&typeStore, &testIn);
|
||||
|
6
deps/ox/src/ox/oc/write.hpp
vendored
6
deps/ox/src/ox/oc/write.hpp
vendored
@@ -24,7 +24,7 @@ namespace ox {
|
||||
|
||||
class OrganicClawWriter {
|
||||
|
||||
friend Result<Buffer> writeOC(auto *val) noexcept;
|
||||
friend Result<Buffer> writeOC(auto &val) noexcept;
|
||||
|
||||
protected:
|
||||
Json::Value m_json;
|
||||
@@ -242,10 +242,10 @@ Error OrganicClawWriter::field(const char *key, UnionView<U, force> val) noexcep
|
||||
return OxError(0);
|
||||
}
|
||||
|
||||
Result<Buffer> writeOC(auto *val) noexcept {
|
||||
Result<Buffer> writeOC(auto &val) noexcept {
|
||||
OrganicClawWriter writer;
|
||||
ModelHandlerInterface handler(&writer);
|
||||
oxReturnError(model(&handler, val));
|
||||
oxReturnError(model(&handler, &val));
|
||||
Json::StreamWriterBuilder jsonBuilder;
|
||||
const auto str = Json::writeString(jsonBuilder, writer.m_json);
|
||||
Buffer buff(str.size() + 1);
|
||||
|
Reference in New Issue
Block a user