xrpld
Loading...
Searching...
No Matches
xrpl::detail::MultiApiJson< MinVer, MaxVer > Struct Template Reference

#include <MultiApiJson.h>

Collaboration diagram for xrpl::detail::MultiApiJson< MinVer, MaxVer >:

Classes

struct  VisitorT

Public Types

enum class  IsMemberResult : int { None = 0 , Some , All }

Public Member Functions

 MultiApiJson (json::Value const &init={})
void set (char const *key, auto const &v)
IsMemberResult isMember (char const *key) const
auto visit ()
auto visit () const
template<typename... Args>
auto visit (Args... args) -> std::invoke_result_t< VisitorT, MultiApiJson &, Args... > requires(sizeof...(args) > 0) &&
template<typename... Args>
auto visit (Args... args) const -> std::invoke_result_t< VisitorT, MultiApiJson const &, Args... > requires(sizeof...(args) > 0) &&

Static Public Member Functions

static constexpr auto valid (unsigned int v) noexcept -> bool
static constexpr auto index (unsigned int v) noexcept -> std::size_t

Public Attributes

std::array< json::Value, kSizeval = {}

Static Public Attributes

static constexpr std::size_t kSize = MaxVer + 1 - MinVer
static constexpr struct xrpl::detail::MultiApiJson::VisitorT kVisitor = {}

Detailed Description

template<unsigned MinVer, unsigned MaxVer>
struct xrpl::detail::MultiApiJson< MinVer, MaxVer >

Definition at line 34 of file MultiApiJson.h.

Member Enumeration Documentation

◆ IsMemberResult

template<unsigned MinVer, unsigned MaxVer>
enum class xrpl::detail::MultiApiJson::IsMemberResult : int
strong
Enumerator
None 
Some 
All 

Definition at line 69 of file MultiApiJson.h.

Constructor & Destructor Documentation

◆ MultiApiJson()

template<unsigned MinVer, unsigned MaxVer>
xrpl::detail::MultiApiJson< MinVer, MaxVer >::MultiApiJson ( json::Value const & init = {})
explicit

Definition at line 53 of file MultiApiJson.h.

Member Function Documentation

◆ valid()

template<unsigned MinVer, unsigned MaxVer>
constexpr auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::valid ( unsigned int v) -> bool
staticconstexprnoexcept

Definition at line 39 of file MultiApiJson.h.

◆ index()

template<unsigned MinVer, unsigned MaxVer>
constexpr auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::index ( unsigned int v) -> std::size_t
staticconstexprnoexcept

Definition at line 45 of file MultiApiJson.h.

◆ set()

template<unsigned MinVer, unsigned MaxVer>
void xrpl::detail::MultiApiJson< MinVer, MaxVer >::set ( char const * key,
auto const & v )

Definition at line 62 of file MultiApiJson.h.

◆ isMember()

template<unsigned MinVer, unsigned MaxVer>
IsMemberResult xrpl::detail::MultiApiJson< MinVer, MaxVer >::isMember ( char const * key) const
nodiscard

Definition at line 72 of file MultiApiJson.h.

◆ visit() [1/4]

template<unsigned MinVer, unsigned MaxVer>
auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::visit ( )

Definition at line 149 of file MultiApiJson.h.

◆ visit() [2/4]

template<unsigned MinVer, unsigned MaxVer>
auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::visit ( ) const
nodiscard

Definition at line 159 of file MultiApiJson.h.

◆ visit() [3/4]

template<unsigned MinVer, unsigned MaxVer>
template<typename... Args>
auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::visit ( Args... args) -> std::invoke_result_t< VisitorT, MultiApiJson &, Args... > requires(sizeof...(args) > 0) &&

Definition at line 170 of file MultiApiJson.h.

◆ visit() [4/4]

template<unsigned MinVer, unsigned MaxVer>
template<typename... Args>
auto xrpl::detail::MultiApiJson< MinVer, MaxVer >::visit ( Args... args) const -> std::invoke_result_t< VisitorT, MultiApiJson const &, Args... > requires(sizeof...(args) > 0) &&
nodiscard

Definition at line 179 of file MultiApiJson.h.

Member Data Documentation

◆ kSize

template<unsigned MinVer, unsigned MaxVer>
std::size_t xrpl::detail::MultiApiJson< MinVer, MaxVer >::kSize = MaxVer + 1 - MinVer
staticconstexpr

Definition at line 50 of file MultiApiJson.h.

◆ val

template<unsigned MinVer, unsigned MaxVer>
std::array<json::Value, kSize> xrpl::detail::MultiApiJson< MinVer, MaxVer >::val = {}

Definition at line 51 of file MultiApiJson.h.

◆ kVisitor

template<unsigned MinVer, unsigned MaxVer>
struct xrpl::detail::MultiApiJson::VisitorT xrpl::detail::MultiApiJson< MinVer, MaxVer >::kVisitor = {}
static