CAF  0.17.2
Public Types | Public Member Functions | Static Public Member Functions | Related Functions | List of all members
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 = detail::type_list< integer, boolean, real, atom, timespan, uri, string, list, dictionary >
 
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_valueoperator= (config_value &&other)=default
 
config_valueoperator= (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_valueoperator= (T &&x)
 
void convert_to_list ()
 Converts the value to a list with one element. More...
 
list & as_list ()
 Returns the value as a list, converting it to one if needed.
 
dictionaryas_dictionary ()
 Returns the value as a dictionary, converting it to one if needed.
 
void append (config_value x)
 Appends x to a list. More...
 
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_valueparse (string_view::iterator first, string_view::iterator last)
 Tries to parse a value from str.
 
static expected< config_valueparse (string_view str)
 Tries to parse a value from str.
 

Related Functions

(Note that these are not member functions.)

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_valueget_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 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: