#include <rapidjson/document.h>
#include "../utils.hpp"
#include "virt_wrap/TypesParam.hpp"
#include "json_utils.hpp"
Go to the source code of this file.
|
| struct | JTagRepr< tag, class > |
| |
| struct | JTagRepr< JTag::Bool, void > |
| |
| struct | JTagRepr< JTag::Int32, void > |
| |
| struct | JTagRepr< JTag::Uint32, void > |
| |
| struct | JTagRepr< JTag::Int64, void > |
| |
| struct | JTagRepr< JTag::Uint64, void > |
| |
| struct | JTagRepr< JTag::Float, void > |
| |
| struct | JTagRepr< JTag::Double, void > |
| |
| struct | JTagRepr< JTag::String, void > |
| |
| struct | JTagRepr< JTag::Enum, F > |
| |
| struct | JTagReverse< class > |
| |
| struct | JTagReverse< JTagRepr< tag_, Extra_ > > |
| |
| struct | WArg< tag, nested_type_, Extra > |
| |
|
| template<JTag tag, class Extra = void> |
| using | JTagRepr_t = typename JTagRepr< tag, Extra >::type |
| |
|
| enum | JTag {
JTag::None,
JTag::Array,
JTag::Bool,
JTag::Int32,
JTag::Uint32,
JTag::Int64,
JTag::Uint64,
JTag::Float,
JTag::Double,
JTag::String,
JTag::Enum
} |
| |
|
| std::optional< virt::TypedParams > | json_to_typed_parameters (const rapidjson::Value &val) |
| |
| template<JTag type, JTag nested_type = JTag::None, class Extra = void> |
| auto | extract_param_val (const rapidjson::Value &el_json, JsonRes &json_res) noexcept |
| |
| template<JTag type, JTag nested_type = JTag::None, class Extra = void> |
| auto | extract_param (const rapidjson::Value &val, gsl::czstring<> name, JsonRes &json_res, bool consider_optional=false) noexcept-> decltype(extract_param_val< type, nested_type, Extra >(std::declval< decltype(val)>(), json_res)) |
| |
| template<size_t... I, class... Args> |
| auto | wrap_fcn_args_impl (const rapidjson::Value &val, JsonRes &json_res, std::index_sequence< I... > is, Args...args) noexcept |
| |
| template<class... Args> |
| auto | wrap_fcn_args (const rapidjson::Value &val, JsonRes &json_res, Args...args) noexcept |
| |
| template<class Fcn , class... Args> |
| auto | wrap_fcn (const rapidjson::Value &val, JsonRes &json_res, Fcn fcn, Args...args) noexcept |
| |
template<JTag tag, class Extra = void>
| Enumerator |
|---|
| None |
|
| Array |
|
| Bool |
|
| Int32 |
|
| Uint32 |
|
| Int64 |
|
| Uint64 |
|
| Float |
|
| Double |
|
| String |
|
| Enum |
|
template<JTag type, JTag nested_type = JTag::None, class Extra = void>
| auto extract_param |
( |
const rapidjson::Value & |
val, |
|
|
gsl::czstring<> |
name, |
|
|
JsonRes & |
json_res, |
|
|
bool |
consider_optional = false |
|
) |
| -> decltype(extract_param_val<type, nested_type, Extra>(std::declval<decltype(val)>(), json_res)) |
|
noexcept |
template<JTag type, JTag nested_type = JTag::None, class Extra = void>
| auto extract_param_val |
( |
const rapidjson::Value & |
el_json, |
|
|
JsonRes & |
json_res |
|
) |
| |
|
noexcept |
| std::optional<virt::TypedParams> json_to_typed_parameters |
( |
const rapidjson::Value & |
val | ) |
|
template<class Fcn , class... Args>
| auto wrap_fcn |
( |
const rapidjson::Value & |
val, |
|
|
JsonRes & |
json_res, |
|
|
Fcn |
fcn, |
|
|
Args... |
args |
|
) |
| |
|
noexcept |
template<class... Args>
| auto wrap_fcn_args |
( |
const rapidjson::Value & |
val, |
|
|
JsonRes & |
json_res, |
|
|
Args... |
args |
|
) |
| |
|
noexcept |
template<size_t... I, class... Args>
| auto wrap_fcn_args_impl |
( |
const rapidjson::Value & |
val, |
|
|
JsonRes & |
json_res, |
|
|
std::index_sequence< I... > |
is, |
|
|
Args... |
args |
|
) |
| |
|
noexcept |