Program Listing for File Format.h¶
↰ Return to documentation for file (uconfig/format/Format.h
)
#pragma once
#include <optional>
#include <string>
namespace uconfig {
class Format
{
public:
static inline const std::string name = "[NO FORMAT]";
using source_type = void;
using dest_type = void;
virtual ~Format() = default;
template <typename T>
std::optional<T> Parse(const source_type* source, const std::string& path) const;
template <typename T>
void Emit(dest_type* dest, const std::string& path, const T& value) const;
virtual std::string VectorElementPath(const std::string& vector_path, std::size_t index) const noexcept = 0;
};
} // namespace uconfig