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 ...