userver: yaml_config Namespace Reference
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
yaml_config Namespace Reference

Detailed Description

Utilities to work with static YAML config.

Classes

class  Iterator
 
struct  Schema
 JSON Schema-like type definition. More...
 
class  SchemaPtr
 
class  YamlConfig
 Datatype that represents YAML with substituted variables. More...
 

Typedefs

using Value = YamlConfig
 
using Exception = formats::yaml::Exception
 
using ParseException = formats::yaml::ParseException
 

Enumerations

enum class  FieldType {
  kBool ,
  kInteger ,
  kNumber ,
  kString ,
  kArray ,
  kObject
}
 

Functions

std::string ToString (FieldType type)
 
formats::yaml::Value Serialize (const SchemaPtr &schema, formats::serialize::To< formats::yaml::Value >)
 
Schema Parse (const formats::yaml::Value &schema, formats::parse::To< Schema >)
 
formats::yaml::Value Serialize (const Schema &schema, formats::serialize::To< formats::yaml::Value >)
 
bool Parse (const YamlConfig &value, formats::parse::To< bool >)
 
int64_t Parse (const YamlConfig &value, formats::parse::To< int64_t >)
 
uint64_t Parse (const YamlConfig &value, formats::parse::To< uint64_t >)
 
double Parse (const YamlConfig &value, formats::parse::To< double >)
 
std::string Parse (const YamlConfig &value, formats::parse::To< std::string >)
 
std::chrono::seconds Parse (const YamlConfig &value, formats::parse::To< std::chrono::seconds >)
 Parses duration from string, understands suffixes: ms, s, m, h, d.
 
std::chrono::milliseconds Parse (const YamlConfig &value, formats::parse::To< std::chrono::milliseconds >)
 Parses duration from string, understands suffixes: ms, s, m, h, d.
 
formats::json::Value Parse (const YamlConfig &value, formats::parse::To< formats::json::Value >)
 Converts YAML to JSON.
 
YamlConfig Parse (const YamlConfig &value, formats::parse::To< YamlConfig >)
 Converts YAML to YAML. Returns self.
 
formats::yaml::Value Parse (const YamlConfig &value, formats::parse::To< formats::yaml::Value >)
 Flattens a YamlConfig, applying all of its special syntax.
 
template<typename ParentComponent>
Schema MergeSchemas (const std::string &yaml_string)
 Merge parent and child components schemas of static configs.
 
template<typename T, typename Value>
std::vector< T > ParseMapToArray (const Value &value)
 
template<typename Value>
ItemsWrapper< ValueItems (Value &&value)
 Wrapper for handy python-like iteration over a map.
 

Typedef Documentation

◆ Exception

◆ ParseException

◆ Value

Definition at line 15 of file fwd.hpp.

Enumeration Type Documentation

◆ FieldType

enum class yaml_config::FieldType
strong

Definition at line 22 of file schema.hpp.

Function Documentation

◆ Items()

template<typename Value>
ItemsWrapper< Value > formats::common::Items ( Value && value)

Wrapper for handy python-like iteration over a map.

for (const auto& [name, value]: Items(map)) ...

Definition at line 115 of file items.hpp.

◆ MergeSchemas()

◆ Parse() [1/5]

formats::json::Value yaml_config::Parse ( const YamlConfig & value,
formats::parse::To< formats::json::Value >  )

Converts YAML to JSON.

Exceptions
yaml_config::YamlConfig::Exceptionif value.IsMissing()

◆ Parse() [2/5]

formats::yaml::Value yaml_config::Parse ( const YamlConfig & value,
formats::parse::To< formats::yaml::Value >  )

Flattens a YamlConfig, applying all of its special syntax.

Exceptions
yaml_config::YamlConfig::Exceptionif value.IsMissing()

◆ Parse() [3/5]

std::chrono::milliseconds yaml_config::Parse ( const YamlConfig & value,
formats::parse::To< std::chrono::milliseconds >  )

Parses duration from string, understands suffixes: ms, s, m, h, d.

Exceptions
Oninvalid type and invalid string format

◆ Parse() [4/5]

std::chrono::seconds yaml_config::Parse ( const YamlConfig & value,
formats::parse::To< std::chrono::seconds >  )

Parses duration from string, understands suffixes: ms, s, m, h, d.

Exceptions
Oninvalid type, invalid string format, and if the duration is not a whole amount of seconds

◆ Parse() [5/5]

YamlConfig yaml_config::Parse ( const YamlConfig & value,
formats::parse::To< YamlConfig >  )
inline

Converts YAML to YAML. Returns self.

Definition at line 277 of file yaml_config.hpp.

◆ ParseMapToArray()

template<typename T, typename Value>
std::vector< T > yaml_config::ParseMapToArray ( const Value & value)

Definition at line 11 of file map_to_array.hpp.