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_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::unknown_variant_type< T >
 

Namespaces

 daw
 
 daw::json
 
 daw::json::DAW_JSON_VER
 
 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 Variant >
using daw::json::DAW_JSON_VER::json_details::determine_variant_element_types = std::conditional_t< not is_nullable_json_value_v< Nullable > or not is_nullable_type< Variant >, std::remove_reference_t< decltype(get_variant_type_list(std::declval< Variant const * >()))>, std::conditional_t< is_nullable_type< Variant >, std::remove_reference_t< decltype(get_variant_type_list(std::declval< detected_underlying_nullable_type< Variant > const * >()))>, 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<JSONNAMETYPE Name, typename JsonElement , typename Container = std::vector< typename json_details::json_deduced_type<JsonElement>::parse_to_t>, typename Constructor = nullable_constructor<Container>>
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 T , typename TagMember , typename Switcher , typename JsonElements = json_details::determine_variant_element_types<JsonNullDefault, T>, typename Constructor = nullable_constructor<T>>
using daw::json::DAW_JSON_VER::json_tagged_variant_null = json_tagged_variant< Name, T, TagMember, Switcher, JsonElements, Constructor, JsonNullDefault >
 
template<JSONNAMETYPE Name, typename Tuple , typename Constructor = default_constructor<Tuple>, json_details::json_options_t Options = tuple_opts_def>
using daw::json::DAW_JSON_VER::json_tuple_null = json_tuple< Name, Tuple, Constructor, json_details::tuple_opts_set< Options, JsonNullDefault > >
 
template<JSONNAMETYPE Name, typename T , typename JsonElements = json_details::determine_variant_element_types<JsonNullDefault, T>, typename Constructor = nullable_constructor<T>>
using daw::json::DAW_JSON_VER::json_variant_null = json_variant< Name, T, 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