/* * Author: Patrick-Christopher Mattulat * Company: Lynar Studios * E-Mail: webmaster@lynarstudios.com * Created: 2023-02-10 * Changed: 2024-09-09 * * */ #ifndef LS_STD_SECTION_PAIR_ROW_VALUE_HPP #define LS_STD_SECTION_PAIR_ROW_VALUE_HPP #include #include #include #include /* * @doc: class(name: 'SectionPairRowValue', package: 'io') * */ namespace ls::std::io { class LS_STD_DYNAMIC_GOAL SectionPairRowValue : public ls::std::core::interface_type::ISerializable { public: explicit SectionPairRowValue(const ls::std::io::SectionPairRowEnumType &_type); ~SectionPairRowValue() noexcept override; virtual ls::std::io::SectionPairRowEnumType getType() = 0; [[nodiscard]] ls::std::core::type::byte_field marshal() override; void reserveNewLine(::std::string_view _reservedNewLine); void unmarshal(const ls::std::core::type::byte_field &_data) override; protected: [[nodiscard]] ::std::string _getReservedNewLine() const; [[nodiscard]] ls::std::io::SectionPairRowEnumType _getType() const; private: ::std::string reservedNewLine{}; ls::std::io::SectionPairRowEnumType type{}; }; } #endif