#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 |