24#ifndef GOBY_MIDDLEWARE_TOOL_INTERFACE_YAML_RAII_H
25#define GOBY_MIDDLEWARE_TOOL_INTERFACE_YAML_RAII_H
27#include <yaml-cpp/yaml.h>
36 YSeq(YAML::Emitter& out,
bool flow =
false) : out_(out)
43 out << YAML::BeginSeq;
45 ~YSeq() { out_ << YAML::EndSeq; }
47 template <
typename A>
void add(A a) { out_ << a; }
56 YMap(YAML::Emitter& out,
bool flow =
false) : out_(out)
63 out << YAML::BeginMap;
66 template <
typename A,
typename B>
YMap(YAML::Emitter& out, A key,
B value) :
YMap(out)
71 template <
typename A>
YMap(YAML::Emitter& out, A key) :
YMap(out) {
add_key(key); }
73 ~YMap() { out_ << YAML::EndMap; }
75 template <
typename A,
typename B>
void add(A key,
B value)
77 out_ << YAML::Key << key << YAML::Value << value;
80 template <
typename A>
void add(A key, std::string value)
82 bool double_quote = value.find(
' ') != std::string::npos;
84 out_ << YAML::Key << key << YAML::Value << YAML::DoubleQuoted << value;
86 add<A, std::string>(key, value);
89 template <
typename A>
void add_key(A key) { out_ << YAML::Key << key << YAML::Value; }
YMap(YAML::Emitter &out, bool flow=false)
YMap(YAML::Emitter &out, A key)
void add(A key, std::string value)
YMap(YAML::Emitter &out, A key, B value)
YSeq(YAML::Emitter &out, bool flow=false)
The global namespace for the Goby project.