txt_serializable.hpp (799B)
1 #ifndef UUID_E17CE799_6569_40E4_A8FE_39F088AE30AB 2 #define UUID_E17CE799_6569_40E4_A8FE_39F088AE30AB 3 #pragma once 4 5 #include <libshit/meta.hpp> 6 #include <libshit/lua/type_traits.hpp> 7 #include <libshit/lua/dynamic_object.hpp> 8 9 #include <iosfwd> 10 #include <string> 11 12 namespace Neptools 13 { 14 15 class TxtSerializable : public Libshit::Lua::DynamicObject 16 { 17 LIBSHIT_LUA_CLASS; 18 public: 19 LIBSHIT_NOLUA void WriteTxt(std::ostream& os) const { WriteTxt_(os); } 20 LIBSHIT_NOLUA void WriteTxt(std::ostream&& os) const { WriteTxt_(os); } 21 LIBSHIT_NOLUA void ReadTxt(std::istream& is) { ReadTxt_(is); } 22 LIBSHIT_NOLUA void ReadTxt(std::istream&& is) { ReadTxt_(is); } 23 24 private: 25 virtual void WriteTxt_(std::ostream& os) const = 0; 26 virtual void ReadTxt_(std::istream& is) = 0; 27 }; 28 29 } 30 #endif