CAF 0.17.6
Loading...
Searching...
No Matches
caf::config_value Class Reference

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 atom = atom_value
using timespan = caf::timespan
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, variant>

Public Member Functions

 config_value (config_value &&other)=default
 config_value (const config_value &other)=default
template<class T, class E = detail::enable_if_t< !std::is_same<detail::decay_t<T>, config_value>::value>>
 config_value (T &&x)
config_value & operator= (config_value &&other)=default
config_value & operator= (const config_value &other)=default
template<class T, class E = detail::enable_if_t< !std::is_same<detail::decay_t<T>, config_value>::value>>
config_value & operator= (T &&x)
void convert_to_list ()
 Converts the value to a list with one element.
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.
variant_type & get_data ()
 Returns the underlying variant.
const variant_type & get_data () const
 Returns the underlying variant.
variant_type * get_data_ptr ()
 Returns a pointer to the underlying variant.
const variant_type * get_data_ptr () const
 Returns a pointer to the underlying variant.

Static Public Member Functions

static expected< config_value > parse (string_view::iterator first, string_view::iterator last)
 Tries to parse a value from str.
static expected< config_value > parse (string_view str)
 Tries to parse a value from str.

(Note that these are not member symbols.)

using settings = dictionary<config_value>
 Software options stored as key-value pairs.
bool operator< (const config_value &x, const config_value &y)
bool operator== (const config_value &x, const config_value &y)
bool operator>= (const config_value &x, const config_value &y)
bool operator!= (const config_value &x, const config_value &y)
std::string to_string (const config_value &x)
std::ostream & operator<< (std::ostream &out, const config_value &x)
template<class Inspector>
Inspector::result_type inspect (Inspector &f, config_value &x)
const config_value * get_if (const settings *xs, string_view name)
 Tries to retrieve the value associated to name from xs.
template<class T>
optional< T > get_if (const settings *xs, string_view name)
 Tries to retrieve the value associated to name from xs.
template<class T>
bool holds_alternative (const settings &xs, string_view name)
 Returns whether xs associates a value of type T to name.

Detailed Description

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.

Member Typedef Documentation

◆ types

using caf::config_value::types
Initial value:
detail::type_list<integer, boolean, real, atom, timespan, uri,
string, list, dictionary>
A URI according to RFC 3986.
Definition uri.hpp:35
A list of types.
Definition type_list.hpp:36

Member Function Documentation

◆ append()

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.

◆ convert_to_list()

void caf::config_value::convert_to_list ( )

Converts the value to a list with one element.

Does nothing if the value already is a list.


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