DAW JSON Link
Public Types | Static Public Attributes | List of all members
DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable > Struct Template Reference

#include <daw_json_link_types.h>

Public Types

using base_type = json_details::unwrap_type< String, Nullable >
 
using constructor_t = Constructor
 
using i_am_a_json_type = void
 
using parse_to_t = std::invoke_result_t< Constructor, char const *, char const * >
 
using wrapped_type = String
 

Static Public Attributes

static constexpr JsonParseTypes base_expected_type
 
static constexpr EightBitModes eight_bit_mode = EightBitMode
 
static constexpr JsonNullable empty_is_null = EmptyStringNull
 
static constexpr JsonParseTypes expected_type
 
static constexpr daw::string_view name = Name
 
static constexpr bool nullable = Nullable == JsonNullable::Nullable
 
static constexpr JsonBaseParseTypes underlying_json_type
 

Detailed Description

template<JSONNAMETYPE Name, typename String, typename Constructor, JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
struct DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >

Member is an escaped string and requires unescaping and escaping of string data

Template Parameters
Nameof json member
Stringresult type constructed by Constructor
Constructora callable taking as arguments ( InputIterator, InputIterator ). If others are needed use the Constructor callable convert
EmptyStringNullif string is empty, call Constructor with no arguments
EightBitModeAllow filtering of characters with the MSB set
NullableCan the member be missing or have a null value

Member is an escaped string and requires unescaping and escaping of string data

Template Parameters
Nameof json member
Stringresult type constructed by Constructor
Constructora callable taking as arguments ( char const *, std::size_t )
EmptyStringNullif string is empty, call Constructor with no arguments
EightBitModeAllow filtering of characters with the MSB set
NullableCan the member be missing or have a null value

Member Typedef Documentation

◆ base_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
using DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::base_type = json_details::unwrap_type<String, Nullable>

◆ constructor_t

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
using DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::constructor_t = Constructor

◆ i_am_a_json_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
using DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::i_am_a_json_type = void

◆ parse_to_t

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
using DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::parse_to_t = std::invoke_result_t<Constructor, char const *, char const *>

◆ wrapped_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
using DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::wrapped_type = String

Member Data Documentation

◆ base_expected_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr JsonParseTypes DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::base_expected_type
staticconstexpr

◆ eight_bit_mode

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr EightBitModes DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::eight_bit_mode = EightBitMode
staticconstexpr

◆ empty_is_null

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr JsonNullable DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::empty_is_null = EmptyStringNull
staticconstexpr

◆ expected_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr JsonParseTypes DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::expected_type
staticconstexpr
Initial value:
=
get_parse_type_v<JsonParseTypes::StringEscaped, Nullable>

◆ name

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr daw::string_view DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::name = Name
staticconstexpr

◆ nullable

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr bool DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::nullable = Nullable == JsonNullable::Nullable
staticconstexpr

◆ underlying_json_type

template<JSONNAMETYPE Name, typename String , typename Constructor , JsonNullable EmptyStringNull, EightBitModes EightBitMode, JsonNullable Nullable>
constexpr JsonBaseParseTypes DAW_JSON_NS::json_string< Name, String, Constructor, EmptyStringNull, EightBitMode, Nullable >::underlying_json_type
staticconstexpr

The documentation for this struct was generated from the following file: