#pragma once #include "config/types.h" #include struct AbsObject : public Persistence::Persistable { std::string base; bool persist(Persistence::PersistenceStore & store) override; virtual void dummy() const = 0; }; struct SubObject : public AbsObject { std::string sub; bool persist(Persistence::PersistenceStore & store) override; void dummy() const override; [[nodiscard]] std::string getId() const override; }; struct SubObject2 : public AbsObject { bool persist(Persistence::PersistenceStore & store) override; void dummy() const override; }; struct TestObject : public Persistence::Persistable { TestObject() = default; float flt {}; std::string str {}; bool bl {}; RelativePosition3D pos {}; GlobalPosition3D gpos {}; std::vector flts; std::vector poss; std::vector>> nest; std::unique_ptr ptr; std::unique_ptr aptr; std::vector> vptr; unsigned int postLoadCalled {}; bool persist(Persistence::PersistenceStore & store) override; void postLoad() override; }; struct SharedTestObject : public Persistence::Persistable { SharedTestObject() = default; std::shared_ptr sptr; std::shared_ptr ssptr; bool persist(Persistence::PersistenceStore & store) override; };