#pragma once #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 {}; glm::vec3 pos {}; 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; };