DAW JSON Link
Classes | Namespaces | Typedefs | Functions | Variables
daw_json_link_types_fwd.h File Reference
#include "daw_json_link_impl.h"
#include "daw_json_parse_name.h"
#include "daw_json_parse_value_fwd.h"
#include <daw/cpp_17.h>
#include <daw/daw_arith_traits.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::json_link_quick_map_type< Mapped, Found >
 
struct  daw::json::json_tagged_variant_type_list< JsonElements >
 

Namespaces

 daw
 
 daw::json
 

Typedefs

template<JSONNAMETYPE Name, typename JsonElement , typename Container = std::vector<typename json_details::unnamed_default_type_mapping< JsonElement>::parse_to_t>, typename Constructor = nullable_constructor<Container>>
using daw::json::json_array_null = json_array< Name, JsonElement, Container, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T = std::optional<bool>, LiteralAsStringOpt LiteralAsString = LiteralAsStringOpt::Never, typename Constructor = nullable_constructor<T>>
using daw::json::json_bool_null = json_bool< Name, T, LiteralAsString, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T = double, LiteralAsStringOpt LiteralAsString = LiteralAsStringOpt::Never, typename Constructor = default_constructor<T>, JsonNullable Nullable = JsonNullable::Never>
using daw::json::json_checked_number = json_number< Name, T, LiteralAsString, Constructor, JsonRangeCheck::CheckForNarrowing, Nullable >
 
template<JSONNAMETYPE Name, typename T = std::optional<double>, LiteralAsStringOpt LiteralAsString = LiteralAsStringOpt::Never, typename Constructor = nullable_constructor<T>>
using daw::json::json_checked_number_null = json_number< Name, T, LiteralAsString, Constructor, JsonRangeCheck::CheckForNarrowing, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T , typename Constructor = nullable_constructor<T>>
using daw::json::json_class_null = json_class< Name, T, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T , typename FromConverter = custom_from_converter_t<T>, typename ToConverter = custom_to_converter_t<T>, CustomJsonTypes CustomJsonType = CustomJsonTypes::Either>
using daw::json::json_custom_null = json_custom< Name, T, FromConverter, ToConverter, CustomJsonType, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T = std::optional<std::chrono::time_point< std::chrono::system_clock, std::chrono::milliseconds>>, typename Constructor = construct_from_iso8601_timestamp<JsonNullable::Nullable>>
using daw::json::json_date_null = json_date< Name, T, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename Container , typename JsonValueType , typename JsonKeyType , typename Constructor = nullable_constructor<Container>>
using daw::json::json_key_value_array_null = json_key_value_array< Name, Container, JsonValueType, JsonKeyType, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename Container , typename JsonValueType , typename JsonKeyType = json_string<no_name>, typename Constructor = nullable_constructor<Container>>
using daw::json::json_key_value_null = json_key_value< Name, Container, JsonValueType, JsonKeyType, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T >
using daw::json::json_link_quick_map_t = typename decltype(json_link_quick_map< Name, T >())::mapped_type
 
template<JSONNAMETYPE Name, typename T = std::optional<double>, LiteralAsStringOpt LiteralAsString = LiteralAsStringOpt::Never, typename Constructor = nullable_constructor<T>, JsonRangeCheck RangeCheck = JsonRangeCheck::Never>
using daw::json::json_number_null = json_number< Name, T, LiteralAsString, Constructor, RangeCheck, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename String = std::optional<std::string>, typename Constructor = nullable_constructor<String>, JsonNullable EmptyStringNull = JsonNullable::Never, EightBitModes EightBitMode = EightBitModes::AllowFull>
using daw::json::json_string_null = json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename String = std::optional<std::string>, typename Constructor = nullable_constructor<String>, JsonNullable EmptyStringNull = JsonNullable::Nullable, EightBitModes EightBitMode = EightBitModes::AllowFull, AllowEscapeCharacter AllowEscape = AllowEscapeCharacter::Allow>
using daw::json::json_string_raw_null = json_string_raw< Name, String, Constructor, EmptyStringNull, EightBitMode, JsonNullable::Nullable, AllowEscape >
 
template<JSONNAMETYPE Name, typename T , typename TagMember , typename Switcher , typename JsonElements = json_details::determine_variant_element_types<JsonNullable::Nullable, T>, typename Constructor = nullable_constructor<T>>
using daw::json::json_tagged_variant_null = json_tagged_variant< Name, T, TagMember, Switcher, JsonElements, Constructor, JsonNullable::Nullable >
 
template<JSONNAMETYPE Name, typename T , typename JsonElements , typename Constructor = nullable_constructor<T>>
using daw::json::json_variant_null = json_variant< Name, T, JsonElements, Constructor, JsonNullable::Nullable >
 

Functions

template<JSONNAMETYPE Name, typename T >
constexpr DAW_ATTRIBUTE_HIDDEN auto daw::json::json_link_quick_map ()
 

Variables

template<typename T >
constexpr bool daw::json::has_json_link_quick_map_v