C++ Actor Framework 1.0.0
|
A type for config parameters with similar interface to a variant
.
More...
#include <config_value.hpp>
Public Types | |
using | integer = int64_t |
using | boolean = bool |
using | real = double |
using | string = std::string |
using | list = std::vector<config_value> |
using | dictionary = caf::dictionary<config_value> |
using | types |
using | variant_type = detail::tl_apply_t<types, std::variant> |
Public Member Functions | |
config_value (config_value &&other)=default | |
config_value (const config_value &other)=default | |
template<class T , class = std::enable_if_t< !std::is_same_v<std::decay_t<T>, config_value>>> | |
config_value (T &&x) | |
config_value & | operator= (config_value &&other)=default |
config_value & | operator= (const config_value &other)=default |
template<class T , class = std::enable_if_t< !std::is_same_v<std::decay_t<T>, config_value>>> | |
config_value & | operator= (T &&x) |
void | convert_to_list () |
Converts the value to a list with one element (unless the config value holds nullptr ). | |
list & | as_list () |
Returns the value as a list, converting it to one if needed. | |
dictionary & | as_dictionary () |
Returns the value as a dictionary, converting it to one if needed. | |
void | append (config_value x) |
Appends x to a list. | |
const char * | type_name () const noexcept |
Returns a human-readable type name of the current value. | |
operator bool () const noexcept | |
Checks whether this config value is not null. | |
bool | operator! () const noexcept |
Checks whether this config value is null. | |
template<class T > | |
error | assign (T &&x) |
Static Public Member Functions | |
static expected< config_value > | parse (std::string_view::iterator first, std::string_view::iterator last) |
Tries to parse a value from given characters. | |
static expected< config_value > | parse (std::string_view str) |
Tries to parse a value from str . | |
template<class Handle > | |
static std::optional< message > | parse_msg (std::string_view str, const Handle &) |
Tries to parse a config value (list) from str and to convert it to an allowed input message type for Handle . | |
template<class T > | |
static constexpr std::string_view | mapped_type_name () |
Related Symbols | |
(Note that these are not member symbols.) | |
using | settings = dictionary<config_value> |
Software options stored as key-value pairs. | |
CAF_CORE_EXPORT std::string | to_string (const config_value &x) |
template<class T > | |
expected< T > | get_as (const config_value &value) |
Converts a config_value to builtin types or user-defined types that opted into the type inspection API. | |
template<class To = get_or_auto_deduce, class Fallback > | |
auto | get_or (const config_value &x, Fallback &&fallback) |
Converts a config_value to To or returns fallback if the conversion fails. | |
CAF_CORE_EXPORT bool | operator< (const config_value &x, const config_value &y) |
CAF_CORE_EXPORT bool | operator<= (const config_value &x, const config_value &y) |
CAF_CORE_EXPORT bool | operator== (const config_value &x, const config_value &y) |
CAF_CORE_EXPORT bool | operator> (const config_value &x, const config_value &y) |
CAF_CORE_EXPORT bool | operator>= (const config_value &x, const config_value &y) |
bool | operator!= (const config_value &x, const config_value &y) |
CAF_CORE_EXPORT std::ostream & | operator<< (std::ostream &out, const config_value &x) |
CAF_CORE_EXPORT std::string | to_string (const settings &xs) |
CAF_CORE_EXPORT const config_value * | get_if (const settings *xs, std::string_view name) |
Tries to retrieve the value associated to name from xs . | |
template<class T > | |
auto | get_if (const settings *xs, std::string_view name) |
Tries to retrieve the value associated to name from xs . | |
template<class T > | |
bool | holds_alternative (const settings &xs, std::string_view name) |
Returns whether xs associates a value of type T to name . | |
A type for config parameters with similar interface to a variant
.
This type is not implemented as a simple variant alias because variants cannot contain lists of themselves.
using caf::config_value::types |
void caf::config_value::append | ( | config_value | x | ) |
Appends x
to a list.
Converts this config value to a list first by calling convert_to_list
if needed.
config_value::dictionary & caf::config_value::as_dictionary | ( | ) |
Returns the value as a dictionary, converting it to one if needed.
The only data structure that CAF can convert to a dictionary is a list of lists, where each nested list contains exactly two elements (key and value). In all other cases, the conversion results in an empty dictionary.
void caf::config_value::convert_to_list | ( | ) |
Converts the value to a list with one element (unless the config value holds nullptr
).
Does nothing if the value already is a list.