userver: yaml_config Namespace Reference
Loading...
Searching...
No Matches
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.