Line data Source code
1 : #pragma once
2 :
3 : #include <string>
4 :
5 : namespace Amplitron {
6 :
7 : struct PresetData;
8 :
9 : /**
10 : * @brief Interface for serializing and deserializing preset configurations.
11 : * Satisfies Single Responsibility Principle (SRP) and Dependency Inversion Principle (DIP).
12 : */
13 126 : class IPresetSerializer {
14 : public:
15 378 : virtual ~IPresetSerializer() = default;
16 : virtual std::string serialize(const PresetData& preset) = 0;
17 : virtual bool deserialize(const std::string& json_str, PresetData& preset) = 0;
18 : };
19 :
20 : } // namespace Amplitron
|