DAW JSON Link
Public Types | Static Public Attributes | List of all members
daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options > Struct Template Reference

#include <daw_json_link_types.h>

Inheritance diagram for daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options >:
daw::json::DAW_JSON_VER::json_base::json_class< T, Constructor, Options >

Public Types

template<JSONNAMETYPE NewName>
using with_name = json_class< NewName, T, Constructor, Options >
 
using without_name = json_base::json_class< T, Constructor, Options >
 
- Public Types inherited from daw::json::DAW_JSON_VER::json_base::json_class< T, Constructor, Options >
using base_type = json_details::unwrapped_t< T, nullable >
 
using constructor_t = json_details::json_class_constructor_t< base_type, Constructor >
 
using data_contract = json_data_contract_trait_t< base_type >
 
using i_am_a_json_type = void
 
using json_member_list = json_data_contract_trait_t< base_type >
 
using parse_to_t = typename std::conditional_t< force_aggregate_construction< base_type >::value, daw::traits::identity< base_type >, daw::traits::identity< typename data_contract::template result_type< constructor_t > > >::type
 
template<JSONNAMETYPE NewName>
using with_name = daw::json::json_class< NewName, T, Constructor, Options >
 
using without_name = json_class
 
using wrapped_type = T
 

Static Public Attributes

static constexpr daw::string_view name = Name
 
- Static Public Attributes inherited from daw::json::DAW_JSON_VER::json_base::json_class< T, Constructor, Options >
static constexpr JsonParseTypes base_expected_type
 
static constexpr JsonParseTypes expected_type
 
static constexpr bool must_be_class_member = false
 
static constexpr daw::string_view name = no_name
 
static constexpr JsonNullable nullable
 
static constexpr JsonBaseParseTypes underlying_json_type
 

Detailed Description

template<JSONNAMETYPE Name, typename T, typename Constructor, json_details::json_options_t Options>
struct daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options >

Link to a JSON class

Template Parameters
Namename of JSON member to link to
Ttype that has specialization of daw::json::json_data_contract
ConstructorA callable used to construct T. The default supports normal and aggregate construction
NullableCan the member be missing or have a null value

NOTE: Some of the basic json types used for deduction are in daw_json_parse_common.h Link to a JSON class

Template Parameters
Namename of JSON member to link to
Ttype that has specialization of daw::json::json_data_contract
ConstructorA callable used to construct T. The default supports normal and aggregate construction
NullableCan the member be missing or have a null value

Member Typedef Documentation

◆ with_name

template<JSONNAMETYPE Name, typename T , typename Constructor , json_details::json_options_t Options>
template<JSONNAMETYPE NewName>
using daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options >::with_name = json_class<NewName, T, Constructor, Options>

◆ without_name

template<JSONNAMETYPE Name, typename T , typename Constructor , json_details::json_options_t Options>
using daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options >::without_name = json_base::json_class<T, Constructor, Options>

Member Data Documentation

◆ name

template<JSONNAMETYPE Name, typename T , typename Constructor , json_details::json_options_t Options>
constexpr daw::string_view daw::json::DAW_JSON_VER::json_class< Name, T, Constructor, Options >::name = Name
staticconstexpr

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