24 #include <boost/lexical_cast.hpp> 28 #if defined(_WIN32) && defined(HR_ENGINE_SHARED) 30 # define MR_DllDeclare __declspec( dllexport ) 32 # define MR_DllDeclare __declspec( dllimport ) 35 # define MR_DllDeclare 49 SUPER(), value(value) { }
71 void Add(std::shared_ptr<InspectNode> s)
73 fields.emplace_back(std::move(s));
80 std::vector<std::shared_ptr<InspectNode>>
fields;
97 void AddStringField(
const std::string &name,
const std::string &
value);
100 void RenderToStream(std::ostream &os);
101 void RenderToString(std::string &s);
110 AddStringField(name, boost::lexical_cast<std::string>(value));
116 AddStringField(name, value);
122 AddStringField(name, value);
128 AddStringField(name, value ?
"true" :
"false");
134 size_t startIndex,
size_t size)
136 auto node = std::make_shared<InspectSeqNode>(size);
137 for (
size_t i = startIndex; i < size; ++i)
138 node->Add(std::make_shared<InspectScalarNode>(
139 boost::lexical_cast<std::string>(elems[i])));
140 fields.emplace_back(name, node);
147 std::vector<std::pair<std::string, std::shared_ptr<InspectNode>>>
fields;
InspectMapNode & AddField(const std::string &name, bool value)
Definition: InspectMapNode.h:126
virtual ~InspectScalarNode()
Definition: InspectMapNode.h:50
InspectNode()
Definition: InspectNode.h:50
std::string value
Definition: InspectMapNode.h:56
An inspection node which maps field names to values (either strings or inspectable subobjects)...
Definition: InspectMapNode.h:88
Definition: InspectMapNode.h:43
InspectMapNode & AddField(const std::string &name, const T &value)
Definition: InspectMapNode.h:108
Definition: Inspectable.h:41
InspectSeqNode(size_t sz)
Definition: InspectMapNode.h:64
virtual ~InspectSeqNode()
Definition: InspectMapNode.h:68
std::vector< std::pair< std::string, std::shared_ptr< InspectNode > > > fields
Definition: InspectMapNode.h:147
InspectMapNode & AddArray(const std::string &name, T *elems, size_t startIndex, size_t size)
Definition: InspectMapNode.h:133
InspectScalarNode(const std::string &value)
Definition: InspectMapNode.h:48
Definition: InspectNode.h:47
#define MR_DllDeclare
Definition: InspectMapNode.h:35
Definition: InspectMapNode.h:59
Definition: Announcement.h:24
virtual ~InspectMapNode()
Definition: InspectMapNode.h:94
InspectMapNode()
Definition: InspectMapNode.h:93
Wrapper for the LibYAML emitter.
Definition: Emitter.h:48
std::vector< std::shared_ptr< InspectNode > > fields
Definition: InspectMapNode.h:80
InspectMapNode & AddField(const std::string &name, const char *value)
Definition: InspectMapNode.h:114
void Add(std::shared_ptr< InspectNode > s)
Definition: InspectMapNode.h:71
InspectMapNode & AddField(const std::string &name, const std::string &value)
Definition: InspectMapNode.h:120
void RenderToYaml(yaml::Emitter &emitter) override
Definition: InspectMapNode.cpp:102