userver: yaml_config Namespace Reference
⚠️ This is the documentation for an old userver version. Click here to switch to the latest version.
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

template<typename T , typename Value >
std::vector< T > ParseMapToArray (const Value &value)
 
template<typename ParentComponent >
Schema MergeSchemas (const std::string &yaml_string)
 Merge parent and child components schemas of static configs.
 
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.
 

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 23 of file schema.hpp.

Function Documentation

◆ MergeSchemas()

template<typename ParentComponent >
Schema yaml_config::MergeSchemas ( const std::string & yaml_string)

Merge parent and child components schemas of static configs.

See also
Static configs validation
Examples
samples/http_caching/http_caching.cpp.

Definition at line 23 of file merge_schemas.hpp.

◆ Parse() [1/3]

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

Converts YAML to JSON.

Exceptions
formats::json::Value::Exceptionif value.IsMissing()

◆ Parse() [2/3]

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() [3/3]

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

◆ 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.