1.
class ISerializable
{
public:
virtual ~ISerializable() = default;
virtual void Serialize(const std::filesystem::path& path,
const std::any& data) const = 0;
virtual std::any Deserialize(const std::filesystem::path& path) const = 0;
};
2.
struct SerializationData {};
class ISerializable
{
public:
virtual ~ISerializable() = default;
virtual void Serialize(const std::filesystem::path& path,
const SerializationData* data) const = 0;
virtual std::unique_ptr<SerializationData> Deserialize(
const std::filesystem::path& path) const = 0;
};