DAW JSON Link
Classes | Namespaces | Typedefs | Functions | Variables
daw_json_link_types_fwd.h File Reference
#include "daw_json_enums.h"
#include "daw_json_link_types_iso8601.h"
#include "daw_json_parse_class.h"
#include "daw_json_parse_name.h"
#include "daw_json_parse_value_fwd.h"
#include "daw_json_traits.h"
#include "version.h"
#include <daw/cpp_17.h>
#include <daw/daw_arith_traits.h>
#include <daw/daw_fwd_pack_apply.h>
#include <daw/daw_traits.h>
#include <daw/daw_utility.h>
#include <chrono>
#include <ciso646>
#include <optional>
#include <string>

Go to the source code of this file.

Classes

struct  daw::json::DAW_JSON_VER::json_details::ensure_mapped< T >
 
struct  daw::json::DAW_JSON_VER::json_tuple_types_list< Ts >
 
struct  daw::json::DAW_JSON_VER::json_variant_type_list< JsonElements >
 
struct  daw::json::DAW_JSON_VER::json_details::missing_default_type_mapping< Ts >
 
struct  daw::json::DAW_JSON_VER::json_details::tuple_types_list< Tuple< Ts... > >
 
struct  daw::json::DAW_JSON_VER::json_details::unknown_variant_type< T >
 

Namespaces

namespace  daw
 
namespace  daw::json
 
namespace  daw::json::DAW_JSON_VER
 
namespace  daw::json::DAW_JSON_VER::json_details
 

Typedefs

template<typename T >
using daw::json::DAW_JSON_VER::json_details::detected_underlying_nullable_type = std::remove_reference_t< daw::detected_t< underlying_nullable_type, T > >
 
template<JsonNullable Nullable, typename Tuple >
using daw::json::DAW_JSON_VER::json_details::determine_tuple_element_types = std::conditional_t< std::disjunction_v< daw::not_trait< is_nullable_json_value< Nullable > >, daw::not_trait< is_nullable_type< Tuple > > >, typename tuple_types_list< Tuple >::type, std::conditional_t< is_nullable_type_v< Tuple >, typename tuple_types_list< detected_underlying_nullable_type< Tuple > >::type, cannot_deduce_tuple_types_list< Nullable, Tuple > > >
 
template<JsonNullable Nullable, typename Variant >
using daw::json::DAW_JSON_VER::json_details::determine_variant_element_types = std::conditional_t< std::disjunction_v< daw::not_trait< is_nullable_json_value< Nullable > >, daw::not_trait< is_nullable_type< Variant > > >, variant_alternatives_list< Variant >, std::conditional_t< is_nullable_type_v< Variant >, variant_alternatives_list< detected_underlying_nullable_type< Variant > >, cannot_deduce_variant_element_types< Nullable, Variant > > >
 
template<typename T >
using daw::json::DAW_JSON_VER::json_details::ensure_mapped_t = typename ensure_mapped< T >::type
 
template<typename T >
using daw::json::DAW_JSON_VER::json_details::is_nullable_type = daw::is_detected< underlying_nullable_type, T >
 
template<JSONNAMETYPE Name, typename JsonElement , typename Container = json_deduce_type, typename Constructor = json_deduce_type>
using daw::json::DAW_JSON_VER::json_array_null = json_array< Name, JsonElement, Container, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename T = std::optional<bool>, json_details::json_options_t Options = bool_opts_def, typename Constructor = default_constructor<T>>
using daw::json::DAW_JSON_VER::json_bool_null = json_bool< Name, T, json_details::bool_opts_set< Options, JsonNullDefault >, Constructor >
 
template<JSONNAMETYPE Name, typename T = double, json_details::json_options_t Options = number_opts_def, typename Constructor = default_constructor<T>>
using daw::json::DAW_JSON_VER::json_checked_number = json_number< Name, T, json_details::number_opts_set< Options, JsonRangeCheck::CheckForNarrowing >, Constructor >
 
template<JSONNAMETYPE Name, typename T = std::optional<double>, json_details::json_options_t Options = number_opts_def, typename Constructor = nullable_constructor<T>>
using daw::json::DAW_JSON_VER::json_checked_number_null = json_number< Name, T, json_details::number_opts_set< Options, JsonRangeCheck::CheckForNarrowing, JsonNullDefault >, Constructor >
 
template<JSONNAMETYPE Name, typename T , typename Constructor = nullable_constructor<T>, json_details::json_options_t Options = class_opts_def>
using daw::json::DAW_JSON_VER::json_class_null = json_class< Name, T, Constructor, json_details::class_opts_set< Options, JsonNullDefault > >
 
template<JSONNAMETYPE Name, typename T , typename FromJsonConverter = default_from_json_converter_t<T>, typename ToJsonConverter = default_to_json_converter_t<T>, json_details::json_options_t Options = json_custom_opts_def>
using daw::json::DAW_JSON_VER::json_custom_lit = json_custom< Name, T, FromJsonConverter, ToJsonConverter, json_details::json_custom_opts_set< Options, JsonCustomTypes::Literal > >
 
template<JSONNAMETYPE Name, typename T , typename FromJsonConverter = default_from_json_converter_t<T>, typename ToJsonConverter = default_to_json_converter_t<T>, json_details::json_options_t Options = json_custom_opts_def>
using daw::json::DAW_JSON_VER::json_custom_lit_null = json_custom< Name, T, FromJsonConverter, ToJsonConverter, json_details::json_custom_opts_set< Options, JsonCustomTypes::Literal, JsonNullDefault > >
 
template<JSONNAMETYPE Name, typename T , typename FromJsonConverter = default_from_json_converter_t<T>, typename ToJsonConverter = default_to_json_converter_t<T>, json_details::json_options_t Options = json_custom_opts_def>
using daw::json::DAW_JSON_VER::json_custom_null = json_custom< Name, T, FromJsonConverter, ToJsonConverter, json_details::json_custom_opts_set< Options, JsonNullDefault > >
 
template<JSONNAMETYPE Name, typename T = std::optional<std::chrono::time_point< std::chrono::system_clock, std::chrono::milliseconds>>, typename Constructor = construct_from_iso8601_timestamp<JsonNullDefault>>
using daw::json::DAW_JSON_VER::json_date_null = json_date< Name, T, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename Container , typename JsonValueType = typename Container::mapped_type, typename JsonKeyType = typename Container::key_type, typename Constructor = nullable_constructor<Container>>
using daw::json::DAW_JSON_VER::json_key_value_array_null = json_key_value_array< Name, Container, JsonValueType, JsonKeyType, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename Container , typename JsonValueType = typename Container::mapped_type, typename JsonKeyType = typename Container::key_type, typename Constructor = nullable_constructor<Container>>
using daw::json::DAW_JSON_VER::json_key_value_null = json_key_value< Name, Container, JsonValueType, JsonKeyType, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename T = std::optional<double>, json_details::json_options_t Options = number_opts_def, typename Constructor = nullable_constructor<T>>
using daw::json::DAW_JSON_VER::json_number_null = json_number< Name, T, json_details::number_opts_set< Options, JsonNullDefault >, Constructor >
 
template<JSONNAMETYPE Name, typename String = std::optional<std::string>, json_details::json_options_t Options = string_opts_def, typename Constructor = nullable_constructor<String>>
using daw::json::DAW_JSON_VER::json_string_null = json_string< Name, String, json_details::string_opts_set< Options, JsonNullDefault >, Constructor >
 
template<JSONNAMETYPE Name, typename String = std::optional<std::string>, json_details::json_options_t Options = string_raw_opts_def, typename Constructor = nullable_constructor<String>>
using daw::json::DAW_JSON_VER::json_string_raw_null = json_string_raw< Name, String, json_details::string_raw_opts_set< Options, JsonNullDefault >, Constructor >
 
template<JSONNAMETYPE Name, typename Variant , typename TagMember , typename Switcher , typename JsonElements = json_deduce_type, typename Constructor = nullable_constructor<Variant>>
using daw::json::DAW_JSON_VER::json_tagged_variant_null = json_tagged_variant< Name, Variant, TagMember, Switcher, JsonElements, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename Tuple , typename Constructor = json_deduce_type, json_details::json_options_t Options = tuple_opts_def, typename JsonTupleTypesList = json_deduce_type>
using daw::json::DAW_JSON_VER::json_tuple_null = json_tuple< Name, Tuple, Constructor, json_details::tuple_opts_set< Options, JsonNullDefault >, JsonTupleTypesList >
 
template<JSONNAMETYPE Name, typename Variant , typename JsonElements = json_deduce_type, typename Constructor = nullable_constructor<Variant>>
using daw::json::DAW_JSON_VER::json_variant_null = json_variant< Name, Variant, JsonElements, Constructor, JsonNullDefault >
 
template<typename T >
using daw::json::DAW_JSON_VER::json_details::underlying_nullable_type = decltype(*std::declval< T >())
 

Functions

template<JsonBaseParseTypes PT>
constexpr std::size_t daw::json::DAW_JSON_VER::json_details::find_json_element (std::initializer_list< JsonBaseParseTypes > pts)
 
template<typename... Ts>
constexpr std::conditional_t< std::conjunction< has_json_deduced_type< Ts >... >::value, json_variant_type_list< json_deduced_type< Ts >... >, missing_default_type_mapping< json_deduced_type< Ts >... > > daw::json::DAW_JSON_VER::json_details::get_variant_type_list (std::variant< Ts... > const *)
 
template<typename T >
constexpr unknown_variant_type< T > daw::json::DAW_JSON_VER::json_details::get_variant_type_list (T const *)
 

Variables

template<typename T >
constexpr bool daw::json::DAW_JSON_VER::json_details::is_nullable_type_v = is_nullable_type<T>::value