Bitcoin Core  0.18.99
P2P Digital Currency
Public Types | Public Member Functions | Public Attributes | List of all members
RPCArg Struct Reference

#include <util.h>

Public Types

enum  Type {
  Type::OBJ, Type::ARR, Type::STR, Type::NUM,
  Type::BOOL, Type::OBJ_USER_KEYS, Type::AMOUNT, Type::STR_HEX,
  Type::RANGE
}
 
enum  Optional { Optional::NO, Optional::OMITTED_NAMED_ARG, Optional::OMITTED }
 
using Fallback = boost::variant< Optional, std::string >
 

Public Member Functions

 RPCArg (const std::string &name, const Type &type, const Fallback &fallback, const std::string &description, const std::string &oneline_description="", const std::vector< std::string > &type_str={})
 
 RPCArg (const std::string &name, const Type &type, const Fallback &fallback, const std::string &description, const std::vector< RPCArg > &inner, const std::string &oneline_description="", const std::vector< std::string > &type_str={})
 
bool IsOptional () const
 
std::string ToString (bool oneline) const
 Return the type string of the argument. More...
 
std::string ToStringObj (bool oneline) const
 Return the type string of the argument when it is in an object (dict). More...
 
std::string ToDescriptionString () const
 Return the description string, including the argument type and whether the argument is required. More...
 

Public Attributes

const std::string m_name
 The name of the arg (can be empty for inner args) More...
 
const Type m_type
 
const std::vector< RPCArgm_inner
 Only used for arrays or dicts. More...
 
const Fallback m_fallback
 
const std::string m_description
 
const std::string m_oneline_description
 Should be empty unless it is supposed to override the auto-generated summary line. More...
 
const std::vector< std::string > m_type_str
 Should be empty unless it is supposed to override the auto-generated type strings. Vector length is either 0 or 2, m_type_str.at(0) will override the type of the value in a key-value pair, m_type_str.at(1) will override the type in the argument description. More...
 

Detailed Description

Definition at line 86 of file util.h.

Member Typedef Documentation

◆ Fallback

using RPCArg::Fallback = boost::variant<Optional, std::string>

Definition at line 115 of file util.h.

Member Enumeration Documentation

◆ Optional

enum RPCArg::Optional
strong
Enumerator
NO 

Required arg.

OMITTED_NAMED_ARG 

Optional arg that is a named argument and has a default value of null.

When possible, the default value should be specified.

OMITTED 

Optional argument with default value omitted because they are implicitly clear.

That is, elements in an array or object may not exist by default. When possible, the default value should be specified.

Definition at line 99 of file util.h.

◆ Type

enum RPCArg::Type
strong
Enumerator
OBJ 
ARR 
STR 
NUM 
BOOL 
OBJ_USER_KEYS 

Special type where the user must set the keys e.g. to define multiple addresses; as opposed to e.g. an options object where the keys are predefined.

AMOUNT 

Special type representing a floating point amount (can be either NUM or STR)

STR_HEX 

Special type that is a STR with only hex chars.

RANGE 

Special type that is a NUM or [NUM,NUM].

Definition at line 87 of file util.h.

Constructor & Destructor Documentation

◆ RPCArg() [1/2]

RPCArg::RPCArg ( const std::string &  name,
const Type type,
const Fallback fallback,
const std::string &  description,
const std::string &  oneline_description = "",
const std::vector< std::string > &  type_str = {} 
)
inline

Definition at line 124 of file util.h.

◆ RPCArg() [2/2]

RPCArg::RPCArg ( const std::string &  name,
const Type type,
const Fallback fallback,
const std::string &  description,
const std::vector< RPCArg > &  inner,
const std::string &  oneline_description = "",
const std::vector< std::string > &  type_str = {} 
)
inline

Definition at line 141 of file util.h.

Member Function Documentation

◆ IsOptional()

bool RPCArg::IsOptional ( ) const

Definition at line 503 of file util.cpp.

◆ ToDescriptionString()

std::string RPCArg::ToDescriptionString ( ) const

Return the description string, including the argument type and whether the argument is required.

Definition at line 512 of file util.cpp.

Here is the caller graph for this function:

◆ ToString()

std::string RPCArg::ToString ( bool  oneline) const

Return the type string of the argument.

Set oneline to allow it to be overridden by a custom oneline type string (m_oneline_description).

Definition at line 618 of file util.cpp.

Here is the caller graph for this function:

◆ ToStringObj()

std::string RPCArg::ToStringObj ( bool  oneline) const

Return the type string of the argument when it is in an object (dict).

Set oneline to get the oneline representation (less whitespace)

Definition at line 579 of file util.cpp.

Here is the caller graph for this function:

Member Data Documentation

◆ m_description

const std::string RPCArg::m_description

Definition at line 120 of file util.h.

◆ m_fallback

const Fallback RPCArg::m_fallback

Definition at line 119 of file util.h.

◆ m_inner

const std::vector<RPCArg> RPCArg::m_inner

Only used for arrays or dicts.

Definition at line 118 of file util.h.

◆ m_name

const std::string RPCArg::m_name

The name of the arg (can be empty for inner args)

Definition at line 116 of file util.h.

◆ m_oneline_description

const std::string RPCArg::m_oneline_description

Should be empty unless it is supposed to override the auto-generated summary line.

Definition at line 121 of file util.h.

◆ m_type

const Type RPCArg::m_type

Definition at line 117 of file util.h.

◆ m_type_str

const std::vector<std::string> RPCArg::m_type_str

Should be empty unless it is supposed to override the auto-generated type strings. Vector length is either 0 or 2, m_type_str.at(0) will override the type of the value in a key-value pair, m_type_str.at(1) will override the type in the argument description.

Definition at line 122 of file util.h.


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