4#ifndef _Stroika_Foundation_DataExchange_Variant_JSON_Reader_h_
5#define _Stroika_Foundation_DataExchange_Variant_JSON_Reader_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Common/Common.h"
27namespace Stroika::Foundation::DataExchange::Variant::JSON {
31 struct ReaderOptions {
32 enum class Algorithm {
34#if __has_include("boost/json.hpp")
38#if __has_include("boost/json.hpp")
42 eDEFAULT = eStroikaNative,
46 using Algorithm::eStroikaNative;
47#if __has_include("boost/json.hpp")
48 using Algorithm::eBoost;
51 optional<Algorithm> fPreferredAlgorithm;
53 using ReaderOptions::Algorithm::eStroikaNative;
54#if __has_include("boost/json.hpp")
55 using ReaderOptions::Algorithm::eBoost;
88 Reader (
const ReaderOptions& options = {});
92#if __has_include("boost/json.hpp")
95 static shared_ptr<_IRep> mk_ (
const ReaderOptions& options);
#define Stroika_Define_Enum_Bounds(FIRST_ITEM, LAST_ITEM)
abstract class specifying interface for readers that map a source like XML or JSON to a VariantValue ...