DAW JSON Link
Public Types | Static Public Attributes | List of all members
daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable > Struct Template Reference

#include <daw_json_link.h>

Public Types

using base_type = json_details::unwrap_type< T, Nullable >
 
using constructor_t = Constructor
 
using i_am_a_json_type = void
 
using parse_to_t = std::invoke_result_t< Constructor, base_type >
 
using wrapped_type = T
 

Static Public Attributes

static constexpr JsonParseTypes base_expected_type
 
static constexpr JsonParseTypes expected_type
 
static constexpr LiteralAsStringOpt literal_as_string = LiteralAsString
 
static constexpr daw::string_view name = Name
 
static constexpr bool nullable = Nullable == JsonNullable::Nullable
 
static constexpr JsonRangeCheck range_check = RangeCheck
 
static constexpr JsonBaseParseTypes underlying_json_type
 

Detailed Description

template<JSONNAMETYPE Name, typename T, LiteralAsStringOpt LiteralAsString, typename Constructor, JsonRangeCheck RangeCheck, JsonNullable Nullable>
struct daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >

The member is a range checked number

Template Parameters
Namename of json member
Ttype of number(e.g. double, int, unsigned...) to pass to Constructor
LiteralAsStringCould this number be embedded in a string
ConstructorCallable used to construct result
NullableCan the member be missing or have a null value

The member is a number

Template Parameters
Namename of json member
Ttype of number(e.g. double, int, unsigned...) to pass to Constructor
LiteralAsStringCould this number be embedded in a string
ConstructorCallable used to construct result
RangeCheckCheck if the value will fit in the result
NullableCan the member be missing or have a null value

Member Typedef Documentation

◆ base_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
using daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::base_type = json_details::unwrap_type<T, Nullable>

◆ constructor_t

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
using daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::constructor_t = Constructor

◆ i_am_a_json_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
using daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::i_am_a_json_type = void

◆ parse_to_t

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
using daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::parse_to_t = std::invoke_result_t<Constructor, base_type>

◆ wrapped_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
using daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::wrapped_type = T

Member Data Documentation

◆ base_expected_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr JsonParseTypes daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::base_expected_type
staticconstexpr
Initial value:
=
json_details::number_parse_type_v<base_type>

◆ expected_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr JsonParseTypes daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::expected_type
staticconstexpr
Initial value:
=
get_parse_type_v<json_details::number_parse_type_v<base_type>, Nullable>

◆ literal_as_string

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr LiteralAsStringOpt daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::literal_as_string = LiteralAsString
staticconstexpr

◆ name

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr daw::string_view daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::name = Name
staticconstexpr

◆ nullable

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr bool daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::nullable = Nullable == JsonNullable::Nullable
staticconstexpr

◆ range_check

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr JsonRangeCheck daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::range_check = RangeCheck
staticconstexpr

◆ underlying_json_type

template<JSONNAMETYPE Name, typename T , LiteralAsStringOpt LiteralAsString, typename Constructor , JsonRangeCheck RangeCheck, JsonNullable Nullable>
constexpr JsonBaseParseTypes daw::json::json_number< Name, T, LiteralAsString, Constructor, RangeCheck, Nullable >::underlying_json_type
staticconstexpr
Initial value:
=
JsonBaseParseTypes::Number

The documentation for this struct was generated from the following file:
daw::json::JsonNullable::Never
@ Never