From 4cd305a0420f1acc75a8f81ff15264a99581f9d0 Mon Sep 17 00:00:00 2001 From: Stanislaw Halik Date: Sun, 13 Nov 2022 18:02:21 +0100 Subject: some WIP entity stuff --- test/entity.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 test/entity.cpp (limited to 'test') diff --git a/test/entity.cpp b/test/entity.cpp new file mode 100644 index 00000000..9cf0e617 --- /dev/null +++ b/test/entity.cpp @@ -0,0 +1,35 @@ +#include "app.hpp" +#include "compat/assert.hpp" +#include "src/entity.hpp" + +namespace floormat { + +using namespace floormat::entities; + +static void test() +{ + struct Test { + int foo = 111; + int bar() const { return _bar; } + void set_bar(int value) { _bar = value; } + int _baz = 222; + private: + int _bar = 333; + }; + + using Entity = entity; + constexpr auto m_foo = Entity::Field::make{ "foo"_s, &Test::foo, &Test::foo, }; + constexpr auto m_bar = Entity::Field::make{ "bar"_s, &Test::bar, &Test::set_bar, }; + constexpr auto r_baz = [](const Test& x) { return x._baz; }; + constexpr auto w_baz = [](Test& x, int v) { x._baz = v; }; + constexpr auto m_baz = Entity::Field::make{ "baz"_s, r_baz, w_baz }; + + auto x = Test{}; + fm_assert(m_foo.read(x) == 111); + fm_assert(m_bar.read(x) == 222); + fm_assert(m_baz.read(x) == 333); + + return true; +} + +} // namespace floormat -- cgit v1.2.3