VIPRA Documentation
Loading...
Searching...
No Matches
serializable.hpp
1#pragma once
2
3#include <string>
4
5namespace VIPRA::Modules {
6
7class Serializable {
8 public:
9 [[nodiscard]] virtual auto serialize() -> std::string = 0;
10 virtual void parse(std::string const& data) = 0;
11
12 Serializable() = default;
13 Serializable(const Serializable&) = default;
14 Serializable(Serializable&&) = default;
15 auto operator=(const Serializable&) -> Serializable& = default;
16 auto operator=(Serializable&&) -> Serializable& = default;
17 virtual ~Serializable() = default;
18};
19
20} // namespace VIPRA::Modules