[nostalgia/common] Update models

This commit is contained in:
Gary Talent 2021-03-31 02:40:52 -05:00
parent 8f7de171af
commit ec711331d1
4 changed files with 23 additions and 13 deletions

View File

@ -5,6 +5,7 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#pragma once #pragma once
#include "point.hpp" #include "point.hpp"
@ -12,7 +13,11 @@
namespace nostalgia::common { namespace nostalgia::common {
class Bounds { class Bounds {
public: public:
static constexpr auto TypeName = "net.drinkingtea.nostalgia.common.Bounds";
static constexpr auto Fields = 4;
static constexpr auto TypeVersion = 1;
int x = 0; int x = 0;
int y = 0; int y = 0;
int width = 0; int width = 0;
@ -33,17 +38,17 @@ class Bounds {
[[nodiscard]] Point pt1(); [[nodiscard]] Point pt1();
[[nodiscard]] Point pt2(); [[nodiscard]] Point pt2();
}; };
template<typename T> template<typename T>
ox::Error model(T *io, Bounds *obj) { ox::Error model(T *io, Bounds *obj) {
auto err = OxError(0); io->template setTypeInfo<Point>();
io->setTypeInfo("nostalgia::common::Bounds", 4); oxReturnError(io->field("x", &obj->x));
err |= io->field("x", &obj->x); oxReturnError(io->field("y", &obj->y));
err |= io->field("y", &obj->y); oxReturnError(io->field("width", &obj->width));
err |= io->field("width", &obj->width); oxReturnError(io->field("height", &obj->height));
err |= io->field("height", &obj->height); return OxError(0);
return err;
} }
} }

View File

@ -5,10 +5,9 @@
* License, v. 2.0. If a copy of the MPL was not distributed with this * License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. * file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/ */
#ifndef NOSTALGIA_COMMON_COMMON_HPP
#define NOSTALGIA_COMMON_COMMON_HPP #pragma once
#include "bounds.hpp" #include "bounds.hpp"
#include "point.hpp" #include "point.hpp"
#include "size.hpp"
#endif

View File

@ -14,6 +14,9 @@ namespace nostalgia::common {
class Point { class Point {
public: public:
static constexpr auto TypeName = "net.drinkingtea.nostalgia.common.Point";
static constexpr auto Fields = 2;
static constexpr auto TypeVersion = 1;
int x = 0; int x = 0;
int y = 0; int y = 0;
@ -183,7 +186,7 @@ constexpr bool Point::operator!=(const Point &p) const {
template<typename T> template<typename T>
ox::Error model(T *io, Point *obj) { ox::Error model(T *io, Point *obj) {
io->setTypeInfo("nostalgia::common::Bounds", 2); io->template setTypeInfo<Point>();
oxReturnError(io->field("x", &obj->x)); oxReturnError(io->field("x", &obj->x));
oxReturnError(io->field("y", &obj->y)); oxReturnError(io->field("y", &obj->y));
return OxError(0); return OxError(0);

View File

@ -14,6 +14,9 @@ namespace nostalgia::common {
class Size { class Size {
public: public:
static constexpr auto TypeName = "net.drinkingtea.nostalgia.common.Size";
static constexpr auto Fields = 2;
static constexpr auto TypeVersion = 1;
int width = 0; int width = 0;
int height = 0; int height = 0;
@ -183,7 +186,7 @@ constexpr bool Size::operator!=(const Size &p) const {
template<typename T> template<typename T>
ox::Error model(T *io, Size *obj) { ox::Error model(T *io, Size *obj) {
io->setTypeInfo("nostalgia::common::Bounds", 2); io->template setTypeInfo<Size>();
oxReturnError(io->field("width", &obj->width)); oxReturnError(io->field("width", &obj->width));
oxReturnError(io->field("height", &obj->height)); oxReturnError(io->field("height", &obj->height));
return OxError(0); return OxError(0);