[nostalgia] Switch to strong int Error
This commit is contained in:
@@ -18,7 +18,7 @@ ox::Error JsonReader::field(QString fieldName, int *dest) {
|
||||
if (m_src.contains(fieldName)) {
|
||||
return field(m_src[fieldName], dest);
|
||||
} else {
|
||||
return JSON_ERR_FIELD_MISSING;
|
||||
return OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ ox::Error JsonReader::field(QString fieldName, bool *dest) {
|
||||
if (m_src.contains(fieldName)) {
|
||||
return field(m_src[fieldName], dest);
|
||||
} else {
|
||||
return JSON_ERR_FIELD_MISSING;
|
||||
return OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ ox::Error JsonReader::field(QString fieldName, double *dest) {
|
||||
if (m_src.contains(fieldName)) {
|
||||
return field(m_src[fieldName], dest);
|
||||
} else {
|
||||
return JSON_ERR_FIELD_MISSING;
|
||||
return OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ ox::Error JsonReader::field(QString fieldName, QString *dest) {
|
||||
if (m_src.contains(fieldName)) {
|
||||
return field(m_src[fieldName], dest);
|
||||
} else {
|
||||
return JSON_ERR_FIELD_MISSING;
|
||||
return OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,36 +51,36 @@ ox::Error JsonReader::field(QString fieldName, QString *dest) {
|
||||
ox::Error JsonReader::field(QJsonValueRef src, int *dest) {
|
||||
if (src.isDouble()) {
|
||||
*dest = src.toInt();
|
||||
return 0;
|
||||
return OxError(0);
|
||||
} else {
|
||||
return JSON_ERR_UNEXPECTED_TYPE;
|
||||
return OxError(JSON_ERR_UNEXPECTED_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
ox::Error JsonReader::field(QJsonValueRef src, bool *dest) {
|
||||
if (src.isBool()) {
|
||||
*dest = src.toBool();
|
||||
return 0;
|
||||
return OxError(0);
|
||||
} else {
|
||||
return JSON_ERR_UNEXPECTED_TYPE;
|
||||
return OxError(JSON_ERR_UNEXPECTED_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
ox::Error JsonReader::field(QJsonValueRef src, double *dest) {
|
||||
if (src.isDouble()) {
|
||||
*dest = src.toDouble();
|
||||
return 0;
|
||||
return OxError(0);
|
||||
} else {
|
||||
return JSON_ERR_UNEXPECTED_TYPE;
|
||||
return OxError(JSON_ERR_UNEXPECTED_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
ox::Error JsonReader::field(QJsonValueRef src, QString *dest) {
|
||||
if (src.isString()) {
|
||||
*dest = src.toString();
|
||||
return 0;
|
||||
return OxError(0);
|
||||
} else {
|
||||
return JSON_ERR_UNEXPECTED_TYPE;
|
||||
return OxError(JSON_ERR_UNEXPECTED_TYPE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -16,8 +16,7 @@
|
||||
|
||||
#include "json_err.hpp"
|
||||
|
||||
namespace nostalgia {
|
||||
namespace studio {
|
||||
namespace nostalgia::studio {
|
||||
|
||||
class JsonReader {
|
||||
|
||||
@@ -64,21 +63,21 @@ ox::Error JsonReader::field(QString fieldName, T *dest) {
|
||||
auto reader = JsonReader(obj);
|
||||
return model(&reader, dest);
|
||||
} else {
|
||||
return JSON_ERR_FIELD_MISSING;
|
||||
return OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
ox::Error JsonReader::field(QString fieldName, QVector<T> *dest) {
|
||||
ox::Error err = 0;
|
||||
auto err = OxError(0);
|
||||
if (m_src.contains(fieldName)) {
|
||||
auto a = m_src[fieldName].toArray();
|
||||
dest->resize(a.size());
|
||||
for (int i = 0; i < dest->size(); i++) {
|
||||
err |= field(a[i], &(*dest)[i]);
|
||||
oxReturnError(field(a[i], &(*dest)[i]));
|
||||
}
|
||||
} else {
|
||||
err |= JSON_ERR_FIELD_MISSING;
|
||||
err = OxError(JSON_ERR_FIELD_MISSING);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
@@ -98,4 +97,3 @@ ox::Error readJson(QString json, T *dest) {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <ox/std/assert.hpp>
|
||||
#include "json.hpp"
|
||||
|
||||
using namespace std;
|
||||
@@ -22,7 +23,7 @@ struct TestStructNest {
|
||||
|
||||
template<typename T>
|
||||
Error model(T *io, TestStructNest *obj) {
|
||||
Error err = 0;
|
||||
auto err = OxError(0);
|
||||
err |= io->setTypeInfo("TestStructNest", 4);
|
||||
err |= io->field("Bool", &obj->Bool);
|
||||
err |= io->field("Int", &obj->Int);
|
||||
@@ -41,7 +42,7 @@ struct TestStruct {
|
||||
|
||||
template<typename T>
|
||||
Error model(T *io, TestStruct *obj) {
|
||||
Error err = 0;
|
||||
auto err = OxError(0);
|
||||
err |= io->setTypeInfo("TestStruct", 5);
|
||||
err |= io->field("Bool", &obj->Bool);
|
||||
err |= io->field("Int", &obj->Int);
|
||||
@@ -52,7 +53,7 @@ Error model(T *io, TestStruct *obj) {
|
||||
}
|
||||
|
||||
int main() {
|
||||
int err = 0;
|
||||
auto err = OxError(0);
|
||||
QString json;
|
||||
TestStruct ts = {
|
||||
true,
|
||||
@@ -75,15 +76,15 @@ int main() {
|
||||
cout << tsOut.Double << endl;
|
||||
cout << tsOut.String.toStdString() << endl;
|
||||
|
||||
err |= !(tsOut.Bool) << 0;
|
||||
err |= !(tsOut.Int == 42) << 1;
|
||||
err |= !(tsOut.Double == 42.42) << 2;
|
||||
err |= !(tsOut.String == "Test String") << 3;
|
||||
oxAssert(tsOut.Bool, "Arg 1 failed");
|
||||
oxAssert(tsOut.Int == 42, "Arg 2 failed");
|
||||
oxAssert(tsOut.Double == 42.42, "Arg 3 failed");
|
||||
oxAssert(tsOut.String == "Test String", "Arg 4 failed");
|
||||
|
||||
err |= !(tsOut.Struct.Bool) << 4;
|
||||
err |= !(tsOut.Struct.Int == 42) << 5;
|
||||
err |= !(tsOut.Struct.Double == 42.42) << 6;
|
||||
err |= !(tsOut.Struct.String == "Test String") << 7;
|
||||
oxAssert(tsOut.Struct.Bool, "Arg 5 failed");
|
||||
oxAssert(tsOut.Struct.Int == 42, "Arg 6 failed");
|
||||
oxAssert(tsOut.Struct.Double == 42.42, "Arg 7 failed");
|
||||
oxAssert(tsOut.Struct.String == "Test String", "Arg 8 failed");
|
||||
|
||||
return err;
|
||||
return static_cast<int>(err);
|
||||
}
|
||||
|
@@ -8,31 +8,29 @@
|
||||
|
||||
#include "json_write.hpp"
|
||||
|
||||
namespace nostalgia {
|
||||
namespace studio {
|
||||
namespace nostalgia::studio {
|
||||
|
||||
JsonWriter::JsonWriter(QJsonObject &obj): m_dest(obj) {
|
||||
}
|
||||
|
||||
ox::Error JsonWriter::field(QString fieldName, int *src) {
|
||||
m_dest[fieldName] = *src;
|
||||
return 0;
|
||||
return OxError(0);
|
||||
}
|
||||
|
||||
ox::Error JsonWriter::field(QString fieldName, bool *src) {
|
||||
m_dest[fieldName] = *src;
|
||||
return 0;
|
||||
return OxError(0);
|
||||
}
|
||||
|
||||
ox::Error JsonWriter::field(QString fieldName, double *src) {
|
||||
m_dest[fieldName] = *src;
|
||||
return 0;
|
||||
return OxError(0);
|
||||
}
|
||||
|
||||
ox::Error JsonWriter::field(QString fieldName, QString *src) {
|
||||
m_dest[fieldName] = *src;
|
||||
return 0;
|
||||
return OxError(0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -16,8 +16,7 @@
|
||||
|
||||
#include "json_err.hpp"
|
||||
|
||||
namespace nostalgia {
|
||||
namespace studio {
|
||||
namespace nostalgia::studio {
|
||||
|
||||
class JsonWriter {
|
||||
|
||||
@@ -56,7 +55,7 @@ ox::Error JsonWriter::field(QString fieldName, T *src) {
|
||||
|
||||
template<typename T>
|
||||
ox::Error JsonWriter::field(QString fieldName, QVector<T> *src) {
|
||||
ox::Error err = 0;
|
||||
auto err = OxError(0);
|
||||
QJsonArray a;
|
||||
for (int i = 0; i < src->size(); i++) {
|
||||
err |= field(a[i], &src->at(i));
|
||||
@@ -75,4 +74,3 @@ ox::Error writeJson(QString *json, T *src) {
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -36,9 +36,9 @@ struct NostalgiaStudioState {
|
||||
|
||||
template<typename T>
|
||||
ox::Error model(T *io, NostalgiaStudioState *obj) {
|
||||
ox::Error err = 0;
|
||||
err |= io->setTypeInfo("NostalgiaStudioState", 1);
|
||||
err |= io->field("project_path", &obj->projectPath);
|
||||
auto err = OxError(0);
|
||||
oxReturnError(io->setTypeInfo("NostalgiaStudioState", 1));
|
||||
oxReturnError(io->field("project_path", &obj->projectPath));
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -50,10 +50,10 @@ struct NostalgiaStudioPluginDef {
|
||||
|
||||
template<typename T>
|
||||
ox::Error model(T *io, NostalgiaStudioPluginDef *obj) {
|
||||
ox::Error err = 0;
|
||||
err |= io->setTypeInfo("NostalgiaStudioPluginDef", 2);
|
||||
err |= io->field("dir", &obj->dir);
|
||||
err |= io->field("lib_name", &obj->libName);
|
||||
auto err = OxError(0);
|
||||
oxReturnError(io->setTypeInfo("NostalgiaStudioPluginDef", 2));
|
||||
oxReturnError(io->field("dir", &obj->dir));
|
||||
oxReturnError(io->field("lib_name", &obj->libName));
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -66,11 +66,11 @@ struct NostalgiaStudioProfile {
|
||||
|
||||
template<typename T>
|
||||
ox::Error model(T *io, NostalgiaStudioProfile *obj) {
|
||||
ox::Error err = 0;
|
||||
auto err = OxError(0);
|
||||
io->setTypeInfo("NostalgiaStudioProfile", 3);
|
||||
err |= io->field("app_name", &obj->appName);
|
||||
err |= io->field("org_name", &obj->orgName);
|
||||
err |= io->field("plugins_path", &obj->pluginsPath);
|
||||
oxReturnError(io->field("app_name", &obj->appName));
|
||||
oxReturnError(io->field("org_name", &obj->orgName));
|
||||
oxReturnError(io->field("plugins_path", &obj->pluginsPath));
|
||||
return err;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user